1. 程式人生 > >【Java】今天想到一個很傻的問題

【Java】今天想到一個很傻的問題

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)想象成一個房間,進出都要過安檢,便於控制篩選和加入其它條件,例如多執行緒,同步非同步;