1. Yerel değişkenler

Değişkenler hakkında daha ciddi konuşalım. Ama bu sefer iç yapılarını tartışmayacağız. Bunun yerine, değişkenlerin bulundukları kodla nasıl etkileşime girdiğine odaklanacağız.

Yöntemler içinde bildirilen tüm değişkenlere yerel değişkenler denir . Yerel bir değişken, yalnızca bildirildiği kod bloğunda bulunur. Ya da daha doğrusu, bildirildiği andan bildirildiği kod bloğunun sonuna kadar var olur.

Basit olması için bir örnek ele alalım:

kod Değişken görünürlük
public static void main(String[] args)
{
   int a = 5;
   if (a < 10)
   {
     int b = 10;
     while (true)
     {
       int x = a + b;
       System.out.println(x);
     }
     System.out.println(b);
   }

}


a
a
a
a, b
a, b
a, b
a, b, x
a, b, x
a, b
a, b
a
a

Yerel değişkenlere erişim hakkında bir kez daha konuşalım. İşte kaşlı ayraçlardan oluşan bir kod bloğu: bu bir yöntem gövdesi, bir döngü gövdesi veya yalnızca koşullu bir ifade için bir kod bloğu olabilir. Bir kod bloğunda bildirilen bir değişken, o kod bloğunun sonuna kadar mevcuttur.

Döngü gövdesinde bir değişken bildirilirse, o zaman yalnızca döngü gövdesinde bulunur. Döngünün her yinelemesinde oluşturulur ve yok edilir.

Bir yöntemde aynı ada sahip iki yerel değişken bildiremezsiniz — program derlenmez. Ancak değişkenlerin bildirildiği kod blokları çakışmıyorsa bunu yapabilirsiniz.

Örnek:

kod Değişken görünürlük
public static void main(String[] args)
{
   int a = 5;
   if (a < 10)
   {
     int b = 10;
     System.out.println(b);
   }

   if (a < 20)
   {
     int b = 20;
     System.out.println(b);
   }
}


a
a
a
a, b
a, b
a
a
a
a
a, b
a, b
a

b Sadece birinci değişken ikinci değişkenin bildirildiği b kod bloğunda görünmediği için adlandırılmış ikinci bir yerel değişken bildirebildik .b


2. Parametreler

Daha önce de söylediğimiz gibi her metot parametre dediğimiz değişkenlere sahip olabilir. Görünürlükleri ve ömürleri ne olacak?

Her şey basit. Yürütme yönteme adım attığında (yani yöntemin kodu yürütülmeye başladığında) parametreler oluşturulur. Yöntem sona erdiğinde elenirler. Yöntemin gövdesi boyunca görünürler.

Örnek:

kod Değişken görünürlük
public static void main(String[] args)
{
   int a = 5;
   if (a < 10)
   {
     int b = 10;
     while (true)
     {
       int x = a + b;
       System.out.println(x);
     }
     System.out.println(b);
   }

}

args
args, a
args, a
args, a
args, a, b
args, a, b
args, a, b
args, a, b, x
args, a, b, x
args, a, b
args, a, b
args, a
args, a

Daha önce de söylediğimiz gibi, argstipi bir dizgiler dizisi olan bir değişkendir. Ve tüm parametreler gibi, yöntemin gövdesi içinde her yerde bulunur. Bununla birlikte, örneklerimizde genellikle bunu görmezden geliriz.



3. Bir sınıftaki değişkenler

Bir sınıfın metotları ve değişkenleri olabileceğini 1. Seviyedeki derslerden hatırlayacaksınız. Yöntemlere bazen örnek yöntemler ve değişkenler - örnek değişkenler veya alanlar denir. Bunlar aslında Java'da eşanlamlıdır.

Bir sınıfın değişkenleri (veya alanları) nelerdir?

Bir metotta değil, bir sınıfta bildirilen değişkenlerdir.

Bir sınıfın herhangi bir (statik olmayan) yönteminden erişilebilirler. Kabaca konuşursak, örnek değişkenler, bir sınıfın tüm yöntemleri tarafından paylaşılan değişkenlerdir .

Örnek:

kod Değişken görünürlük
public class Solution
{
   public int count = 0;
   public int sum = 0;

   public void add(int data)
   {
     sum = sum + data;
     count++;
   }

   public void remove(int data)
   {
     sum = sum - data;
     count--;
   }
}


count
count, sum
count, sum
count, sum
count, sum, data
count, sum, data
count, sum, data
count, sum
count, sum
count, sum
count, sum, data
count, sum, data
count, sum, data
count, sum
count, sum

Bu örnekte iki yöntemimiz var — add()ve remove(). Yöntem , ve örnek değişkenlerini add()artırır ve yöntem,  ve değişkenlerini azaltır . Her iki yöntem de paylaşılan örnek değişkenleri üzerinde çalışır.sumcountremove()sumcount

Bir yöntem yürütülürken yerel değişkenler mevcuttur. Bir sınıfın örnek değişkenleri , o sınıfın bir nesnesi içinde, o nesne var olduğu sürece var olur. Bir sonraki seviyede bir sınıfın nesneleri hakkındaki ayrıntıları öğreneceksiniz.


4. Statik değişkenler

Yöntemler gibi, bir sınıftaki değişkenler statik olabilir veya olmayabilir. Statik yöntemler yalnızca statik değişkenlere erişebilir.

Seviye 11'de statik değişkenlerin ve yöntemlerin yapısını inceleyeceğiz ve bu kısıtlamaların nedenlerini anlayacaksınız.

staticStatik bir değişken (sınıf değişkeni) yapmak için, anahtar kelimeyi bildirimine yazmalısınız .

Statik değişkenler, tanımlandıkları sınıfın bir nesnesine veya örneğine bağlı değildir. Bunun yerine, sınıfın kendisine aittirler. Bu nedenle, sınıfın tek bir nesnesi yaratılmamış olsa bile var olurlar . Aşağıdaki gibi bir yapı kullanarak diğer sınıflardan onlara başvurabilirsiniz:

ClassName.variableName

Örnek:

kod Değişken görünürlük
public class Solution
{
   public void add(int data)
   {
     Storage.sum = Storage.sum + data;
     Storage.count++;
   }

   public void remove(int data)
   {
     Storage.sum = Storage.sum - data;
     Storage.count--;
   }
}

public class Storage
{
   public static int count = 0;
   public static int sum = 0;
}

Storage.count, Storage.sum
Storage.count, Storage.sum
Storage.count, Storage.sum, data
Storage.count, Storage.sum, data
Storage.count, Storage.sum, data
Storage.count, Storage.sum
Storage.count, Storage.sum
Storage.count, Storage.sum
Storage.count, Storage.sum, data
Storage.count, Storage.sum, data
Storage.count, Storage.sum, data
Storage.count, Storage.sum



Storage.count, Storage.sum
Storage.count, Storage.sum
Storage.count, Storage.sum

Yukarıdaki örnekte, ayrı bir Storagesınıf oluşturduk, count ve sum değişkenlerini sınıfa taşıdık ve onları static olarak bildirdik . Genel statik değişkenlere bir programdaki herhangi bir yöntemden erişilebilir (yalnızca bir yöntemden değil).