Yerel değişkenler
"Merhaba sevgili öğrencim! Değişkenleri biraz daha ciddiye almanın zamanı geldi. Ama bu kez iç yapılarından bahsetmeyeceğiz. Bunun yerine, değişkenlerin bulundukları yerde 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. Daha doğrusu, bildirildiği andan bloğun sonuna kadar vardır. bildirildiği kodun."
"Açıkçası, bir örneğe ihtiyacım var."
"Sorun değil. Buyrun:
kod | Değişken kullanılabilirlik |
---|---|
|
|
"Yerel değişkenlere erişim kurallarını bir kez daha gözden geçirelim. İşte bir kod bloğu. Başlangıcını ve sonunu belirleyen nedir?"
"Kıvırcık diş telleri mi?"
"Doğru. 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 vardır. Söyle bana, nerede olacak? bir döngü gövdesinde bildirilmişse bir değişken var mı?"
"Yalnızca döngünün gövdesinde var olacak."
"Bu doğru. Dahası, döngünün her yinelemesinde yaratılacak ve yok edilecek."
"Bu, aynı ada sahip iki yerel değişkeni tek bir yöntemde bildiremeyeceğiniz anlamına gelir ; program derlenmez. Ancak bunu, değişkenlerin bildirildiği kod blokları çakışmazsa yapabilirsiniz. "
"Favorim olman için bir neden var, Amigo. Bunu beyninde sağlamlaştırmak için bir örnek daha al.
kod | Değişken görünürlük |
---|---|
|
|
b
" Yalnızca birinci değişken, ikinci değişkenin bildirildiği b
kod bloğunda görünmediği için, ikinci bir yerel değişkeni adlandırabildik .b
parametreler
"Daha önce de söylediğimiz gibi, her yöntemin parametre dediğimiz değişkenleri olabilir. Peki ya görünürlükleri ve ömürleri?"
"Hmm... Şaşkına döndüm..."
"Burada her şey çok basit. Parametreler, metoda adım atıldığında (yani metodun kodu çalışmaya başladığında) oluşturulur. Metot bitince yok olurlar."
"Başka bir deyişle, yöntemin tüm gövdesinde ve yalnızca orada mı görünüyorlar?"
"Evet. Örnek:
kod | Değişken görünürlük |
---|---|
|
|
"Daha önce de söylediğimiz gibi, args
türü bir dizi dizi olan bir değişkendir. Ve tüm parametreler gibi, yöntemin gövdesi içinde her yerde kullanılabilir. Bununla birlikte, örneklerimizde genellikle onu görmezden geliriz.
Bir sınıftaki değişkenler
"Bir sınıfın yöntemleri ve değişkenleri olabileceğini söylediğimiz 1. Düzeydeki dersleri hatırlayın. Yöntemlere bazen örnek yöntemler ve değişkenler - örnek değişkenler veya alanlar denir.
"Bir sınıfın değişkenleri (veya alanları) nelerdir ?
Bir yöntemde değil, bir sınıfta bildirilen değişkenlerdir."
"Peki ne için oradalar?"
"Yeni başlayanlar için, bir sınıfın herhangi bir (statik olmayan) yönteminden erişilebilirler. Kabaca, ö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 |
---|---|
|
|
"Bu örnekte iki yöntemimiz var - add()
ve remove()
. add()
Yöntem sum
ve count
örnek değişkenlerini artırır ve yöntem ve değişkenlerini remove()
azaltır . Her iki yöntem de paylaşılan örnek değişkenleri üzerinde çalışır."sum
count
"Hepsini anlıyorum! Bir yöntem yürütülürken yerel değişkenler var. Bir sınıfın örnek değişkenleri , bir sınıfın nesnesi içinde, o nesne var olduğu sürece var olur."
"Aferin Amigo. Bazı temelleri attık ve bir sonraki seviyede bir sınıfın nesneleri hakkında ayrıntıları öğreneceksin.
statik değişkenler
"Metotlar gibi, bir sınıftaki değişkenler statik olabilir veya statik olmayabilir. Statik yöntemler yalnızca statik değişkenlere erişebilir.
"Henüz statik değişkenler hakkında net bir anlayışa sahip değilim."
"Ah, biliyorum ama merak etme. Şimdilik bunlarla rahat ol. Onlara aşina ol. Seviye 11'de statik değişkenlerin ve yöntemlerin yapısını inceleyeceğiz ve bunların nedenlerini anlayacaksın. kısıtlamalar.
static
"Statik 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ğildirler. Bunun yerine, sınıfın kendisine aittirler. Bu nedenle, sınıfın tek bir nesnesi oluşturulmamış olsa bile var olurlar . aşağıdaki gibi bir yapı kullanarak diğer sınıflardan onları:
ClassName.variableName
Örnek:
kod | Değişken görünürlük |
---|---|
|
|
"Yukarıdaki örnekte, ayrı bir Storage
sınıf oluşturduk, count
ve sum
değişkenlerini buna taşıdık ve onları static ilan ettik . Genel statik değişkenlere bir programdaki herhangi bir yöntemden erişilebilir (yalnızca bir yöntemden değil).
"Tam olarak anlamıyorum ama bu bana uygun görünüyor."
"Öyle. Ve bazen gerekli. Statik değişkenler ve yöntemler olmasaydı, sıkışıp kalırdık."
"Umarım yavaş yavaş çözebilirim."
"Evet, elbette yapacaksın."