今天在重温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方法的优先级更高