Java中构造方法与setter方法

时间:2024-01-21 17:44:42
  
 
  今天在重温Java的同时,一个不是问题的问题,突然地冒出来,不知道大家是不是和我一样,也有过这个比较尴尬的问题
  不啰嗦了,那咱就直接说问题吧~~~
  那么首先我们在Java中都会写构造函数,目的是在创建对象的时候,方便传参对的吧,
  那么同时呢,我们在添加私有属性的时候,也会生成其setter,getter方法,但是,set方法
  也可以传进参数,在调试的时候,我们同样可以通过set方法,进行传参,那么问题来了,
  构造方法在创建对象时,和调用set方法不会冲突吗?
  经过一番激烈的思想斗争之后,终于想明白了~~~~~~~~
  正解:
  构造是用于创建一个对象,为对象初始化好属性值。例如:(张三,23)
  但是一年后,张三要改名字了,那这个对象总不能在重新来一个吧,
  这时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方法的优先级更高