在Java中,屬性可以分為對(duì)象屬性和類屬性。對(duì)象屬性是指每個(gè)實(shí)例各自所擁有的屬性,而類屬性是指整個(gè)類所共有的屬性。
public class Person { private String name; //對(duì)象屬性 private static int count; //類屬性 public Person(String name) { this.name = name; count++; } public void sayHello() { System.out.println("Hello, my name is " + this.name); } public static void printCount() { System.out.println("There are " + count + " people in total."); } }
在上面的代碼中,name是每個(gè)人所擁有的對(duì)象屬性,而count是整個(gè)Person類所共有的類屬性。
對(duì)象屬性是每個(gè)實(shí)例所獨(dú)有的,因此在創(chuàng)建多個(gè)實(shí)例時(shí),每個(gè)實(shí)例的屬性值是不同的。比如:
Person p1 = new Person("Tom"); Person p2 = new Person("Jerry");
p1和p2都是Person的實(shí)例,但它們擁有的name屬性值是不同的。
而類屬性是整個(gè)類所共有的,因此在類的任何實(shí)例中,類屬性的值都是相同的。比如:
Person.printCount(); //輸出結(jié)果為:There are 2 people in total. Person p3 = new Person("Lucy"); Person.printCount(); //輸出結(jié)果為:There are 3 people in total.
在上面的示例中,count是一個(gè)類屬性,在創(chuàng)建任何Person實(shí)例時(shí)都會(huì)增加。因此,調(diào)用printCount方法時(shí),輸出的總?cè)藬?shù)會(huì)隨著創(chuàng)建實(shí)例的數(shù)量而增加。
總的來說,對(duì)象屬性是每個(gè)實(shí)例所擁有的屬性,而類屬性是整個(gè)類所共有的屬性。它們的使用場(chǎng)景不同,需要根據(jù)具體情況進(jìn)行選擇。