2013-05-22 25 views
24

Ödevim, kullanıcı tarafından girilmesi gereken bir örnek değişkeni olan bir String ile bir program yapmaktır. Ama bir örnek değişkeninin ne olduğunu bile bilmiyorum. Örnek değişkeni nedir? Nasıl bir tane oluştururum? Bu ne işe yarıyor?Java-Bir örnek değişkeni nedir?

+2

http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html – Maroun

cevap

52

Örnek değişken değişken bir sınıf içinde bildirilmiş fark gösterilmektedir ancak bir yöntem dışında: bir şey gibi: Şimdi

class IronMan{ 

    /** These are all instance variables **/ 
    public String realName; 
    public String[] superPowers; 
    public int age; 

    /** Getters/setters here **/ 
} 

bu Ironman Sınıf, bu değişkenleri kullanmak için başka bir sınıfta başlatılabilir, örneğin:

class Avengers{ 
     public static void main(String[] a){ 
       IronMan ironman = new IronMan(); 
       ironman.realName = "Tony Stark"; 
       // or 
       ironman.setAge(30); 
     } 

} 

Örnek değişkenleri bu şekilde kullanırız. Java temelleri here daha fazla eğlenceli şeyler.

19

Örnek değişkeni, bir sınıfın bir örneğinin üyesi olan bir değişkendir (yani, bir new ile oluşturulan bir şeyle ilişkilendirilmiş), bir sınıf değişkeni ise sınıfın bir üyesidir. yalnızca sınıfın kendisi ile ilişkili her statik (veya sınıfı) değişkenin, 1 var oysa bir sınıfın

Her örnek, bir örnek değişkeni kendi kopyasına sahip olacaktır.

difference-between-a-class-variable-and-an-instance-variable

Bu test sınıfı

public class Test { 

    public static String classVariable="I am associated with the class"; 
    public String instanceVariable="I am associated with the instance"; 

    public void setText(String string){ 
     this.instanceVariable=string; 
    } 

    public static void setClassText(String string){ 
     classVariable=string; 
    } 

    public static void main(String[] args) { 
     Test test1=new Test(); 
     Test test2=new Test(); 

     //change test1's instance variable 
     test1.setText("Changed"); 
     System.out.println(test1.instanceVariable); //prints "Changed" 
     //test2 is unaffected 
     System.out.println(test2.instanceVariable);//prints "I am associated with the instance" 

     //change class variable (associated with the class itself) 
     Test.setClassText("Changed class text"); 
     System.out.println(Test.classVariable);//prints "Changed class text" 

     //can access static fields through an instance, but there still is only 1 
     //(not best practice to access static variables through instance) 
     System.out.println(test1.classVariable);//prints "Changed class text" 
     System.out.println(test2.classVariable);//prints "Changed class text" 
    } 
} 
+0

doğru. Bir örnek değişkenini bir nesnede 'alan 'olarak da düşünebilirsiniz. Kolay erişim için kamu – vikingsteve

+0

Nitekim ben ilan ettiler şeylerin çoğunu bu genellikle kötü bir fikir: Bir alakalı bir kavram kapsülleme ('private' erişim değiştirici, alıcıları ve ayarlayıcıları ... bakınız) –

İlgili konular