今天在重溫Java的同時,一個不是問題的問題,突然地冒出來,不知道大家是不是和我一樣,也有過這個比較尷尬的問題
不啰嗦了,那咱就直接說問題吧~~~
那么首先我們在Java中都會寫構造函數,目的是在創建對象的時候,方便傳參對的吧,
那么同時呢,我們在添加私有屬性的時候,也會生成其setter,getter方法,但是,set方法
也可以傳進參數,在調試的時候,我們同樣可以通過set方法,進行傳參,那么問題來了,
構造方法在創建對象時,和調用set方法不會沖突嗎?
經過一番激烈的思想斗爭之后,終於想明白了~~~~~~~~
正解:
構造是用於創建一個對象,為對象初始化好屬性值。例如:(張三,23)
但是一年后,張三要改名字了,那這個對象總不能在重新來一個吧,
這時setter就派上用場了。
對象創建成功后,我想獲取它的屬性,只能通過getter方法來,這個更不能少。
但是一年后,張三要改名字了,那這個對象總不能在重新來一個吧,
這時setter就派上用場了。
對象創建成功后,我想獲取它的屬性,只能通過getter方法來,這個更不能少。
|
1
2
3
4
5
6
7
8
|
Person p = new Person("zhangsan",22);
System.out.println("姓名:" + p.getName());
System.out.println("年齡:" + p.getAge());
//一年后
p.setName("張三");
p.setAge(23);
System.out.println("一年后,姓名:" + p.getName());
System.out.println("一年后,年齡:" + p.getAge());
|
看了上面這個例子,不知道你明白一點沒。
構造函數,就是創建一個對象時調用的。
而后面的setter,getter方法是為這個對象設置屬性值或者獲取屬性值用的。
緊接着,一大堆問題又來了
*那么setter,getter方法跟構造方法它們之間是什么關系呢?
*這個java程序中setter,getter方法跟構造方法執行時關系是什么?
*setter,getter方法跟構造方法的執行順序,流程是怎樣的?
其實,這樣的問題總結一下,答案就是優先級的問題,
我個人感覺,如果構造方法與setter方法同時傳參,setter方法的優先級更高
