【Java】今天想到一個很傻的問題
阿新 • • 發佈:2019-02-09
1.問題:
為什麼有點呼叫(‘.’)方法和賦值號賦值方法(‘=’),為什麼還有get和set方法?
2.原始碼:
public class TestDemo5 {
public static void main(String[] args) {
Pollution p= new Pollution();
p.setPI_NO2("1000");
System.out.println("PI_NO2:"+p.getPI_NO2());
p.dateTime=new Date();
System.out .println("dateTime:"+p.dateTime);
}
}
3.截圖:
我的實體類中,把dateTime設定為public了;
接下來,點方法,只有dateTime能夠被呼叫;其它的只有通過set設定值,通過get獲取值;
看到幾個答案比較好:(這裡保留作者id,如有侵權,立刪):
1、
2、
3、
4、
5、
4.總結:
①作用範圍:public和private規定了作用範圍,就像圍牆;
②安全性:域(Field)或成員變數是私有的,保證了安全性;域(Field)和getter和setter方法搭配在一起才叫屬性,才能構成一個完整的bean;
③封裝:使用get和set方法,相比於 . 和 =,更適合做邏輯判斷,加入篩選條件,方便控制輸入和輸出;可以把域(Field)想象成一個房間,進出都要過安檢,便於控制篩選和加入其它條件,例如多執行緒,同步非同步;