Diğerlerinin söylediği gibi, dile bağlıdır. Ama değişkenleri başlatma hakkındaki Java (ve Etkili Java) fikirlerimi göstereceğim. Bunlar diğer birçok üst düzey dil için kullanılabilir olmalıdır.
Sabitler ve sınıf değişkenleri
static
Java ile işaretlenmiş sınıf değişkenleri sabitler gibidir. Bu değişkenler normal olarak sonlandırılmalı ve =
sınıf başlatıcı bloğu kullanılarak veya içinden tanımlamanın hemen ardından başlatılmalıdır static { // initialize here }
.
Alanlar
Birçok üst düzey ve komut dosyası dilinde olduğu gibi alanlara otomatik olarak varsayılan bir değer atanacaktır. Sayılar için ve char
bu sıfır değeri olacaktır. Dizeler ve diğer nesneler için null
. Şimdi null
tehlikelidir ve idareli kullanılmalıdır. Dolayısıyla bu alanlar mümkün olan en kısa sürede geçerli bir değere ayarlanmalıdır. Yapıcı normalde bunun için mükemmel bir yerdir. Değişkenlerin kurucu sırasında ayarlandığından ve daha sonra değiştirilmediğinden emin olmak için bunları final
anahtar kelimeyle işaretleyebilirsiniz .
null
Bir tür bayrak veya özel değer olarak kullanma isteğine direnmeye çalışın . Örneğin, belirli bir alanı tutmak için durum eklemek daha iyidir. Numaralandırmanın state
değerlerini kullanan bir alan adı State
iyi bir seçim olacaktır.
Yöntem parametreleri
Parametrelerin değerlerindeki değişiklikler (nesnelere veya tamsayılar gibi temel türlere atıfta bulunulması gibi) arayan tarafından görülmeyeceğinden, parametreler olarak işaretlenmelidir final
. Bu, değişkenin kendisinin değerlerinin değiştirilemeyeceği anlamına gelir. Değeri, söz konusu Not kesilebilir nesne örnekleri olabilir değiştirilebilir, referans farklı nesne ya da işaret etmek değiştirilemez null
olsa.
Yerel değişkenler
Yerel değişkenler otomatik olarak başlatılmaz; değerlerinin kullanılabilmesi için önce başlatılması gerekir. Değişkeninizin başlatıldığından emin olmanın bir yolu, bunları doğrudan bir tür varsayılan değere başlatmaktır. Bu ancak gereken bir şeydir değil yapmak. Çoğu zaman varsayılan değer beklediğiniz bir değer değildir.
Değişkeni yalnızca değişkene tam olarak ihtiyaç duyduğunuz yerde tanımlamak çok daha iyidir. Değişken yalnızca tek bir değer alacaksa (bu, iyi koddaki çoğu değişken için geçerlidir), değişkeni işaretleyebilirsiniz final
. Bu, yerel değişkenin sıfır kez veya iki kez değil, tam olarak bir kez atanmasını sağlar. Bir örnek:
public static doMethod(final int x) {
final int y; // no assignment yet, it's final so it *must* be assigned
if (x < 0) {
y = 0;
} else if (x > 0) {
y = x;
} else {
// do nothing <- error, y not assigned if x = 0
// throwing an exception here is acceptable though
}
}
Bir değişken kullanılmadan önce başlatılmazsa, birçok dilin sizi uyaracağını unutmayın. Gereksiz yere endişelenip endişelenmediğinizi görmek için dil özelliklerini ve forumları kontrol edin.