一個類字段和方法,可以通過一些其他類進行訪問後,始終該類本身取決於訪問級別修飾符(私有,默認訪問,受保護或公共)。您可以將字段和方法視爲該類的屬性/屬性。
一個字段就是你所描述的「一個不在任何方法內的類中的變量」。一個字段描述了類的值,一個方法描述了類(或類的對象)可以做什麼。
爲簡化本文,忽略static
關鍵字,類是用於創建對象的模板。您爲某個類創建的每個對象都將擁有一組自己的字段和方法(除非該字段或方法爲static
)。
如果將類的字段設置爲private
沒有任何外部該類可以達到它。只有類本身(實質上是類的方法)才能達到它。私人方法也一樣。只有該類的其他方法才能訪問私有方法。
考慮這個例子:
public class Person {
private String name;
public int id;
public Person(String name, int id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
}
如果有人想通過直接引用該名接取這個人的名字,他們將無法做到這一點,因爲名字是private
。他們將不得不使用方法getName()
來做到這一點。
Person person = new Person(John, 5);
System.out.print(person.name); //does not work
Person person = new Person(John, 5);
System.out.print(person.getName()); //works
這是一件好事,因爲如果名字是直接訪問,你可以寫:
person.name = "Felicity";
和改變的人,這是不想要的(我們可以用id
做到這一點的名字,這可能會導致麻煩)。這是不可能的,當名稱是私人的。
變量裏面的一種方法,但是,不是字段。這意味着它不是對象的屬性。它只是一個臨時變量,允許該方法做它想做的事情。當方法完成執行時,變量被銷燬。聲明這樣的變量爲private
或其他任何內容都是毫無意義的,因此不允許。
您應該閱讀[Java POJO中的字段,變量,屬性和屬性之間的區別是什麼?](http://stackoverflow.com/q/10115588/5221149) – Andreas
謝謝我認爲我現在明白了更好 –