2010-01-15 31 views
12

Java'nın sınıf özelliklerine yerel değerler için değil varsayılan değer sağladığını okudum. Bu doğru mu? Eğer öyleyse bunun sebebi nedir? İyi bir şey yaparken, neden tüm yolu yapmıyorsunuz?Örnek değişkenleri ve yerel değişkenlerin varsayılan değerleri

sayesinde
Roger

+1

"Değişkenlerin Başlangıç ​​Değerleri" için elle başvuru kartı: http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.12.5 – trashgod

+0

olası nedenleri [Neden yerel değişkenlerdir Java başlatılmadı?] (http://stackoverflow.com/questions/415687/why-are-local-variables-not-initialized-in-java) – Raedwald

+0

İşte bir [güncellenmiş bağlantı] (http://docs.oracle var .com/javase/specs/jls/se8/html/jls-4.html # jls-4.12.5) trashgod'un referansı için. – jpaugh

cevap

24

Standart yerel değişkenler yığını üzerinde saklanır ve de başlangıç ​​aslında oluşturulmaz. Yerel bir değişken kullanılmazsa, yığına gitmez. Bununla birlikte, üye değişkenleri yığına ayrılır ve dolayısıyla varsayılan bir yer tutucusuna (boş referans veya varsayılan ilkel) sahiptir.

+0

En iyi açıklama –

1

teknik olmayan sebebi arkasında da biri şu olabilir:

Eğer bunu kullanmak için bunu yerel bir değişken bildirirseniz. Ve kullanım, bir değer atayarak bağlanır. Bu nedenle, bildirilen ancak başlatılmamış bir değişkene erişmek o kadar anlamlı değildir - programcı değişkeni ilklendirmeyi unutmuş olabilir.

Sahası, ancak, sadece e kadar ya da nesnenin ömrü boyunca belirli bir noktadan sonra kullanılabilir. Programlayıcıyı başlatmak için zorlamak iyi olmaz.

İlgili konular