需求:定义一个User类,提供name,age字段,以及相应getter/setter方法。
并创建对象,设置name和age数据,在打印对象的name,age。
什么是this:
表示当前对象,什么又是当前对象
this只要存在于两个位置:
构造器中:就表示当前创建的对象
方法中:哪一个对象调用this所在的方法,那么此时this就表示哪一个对象;
使用this:
1:解决成员变量和参数(局部变量)之间的二义性,必须使用;
2:同类中实例方法间互调(此时可以省略this,但是不建议省略)。
3:将this作为参数传递给另一个方法;
4:将this作为方法的返回值(链式方法编程);
5:构造器重载的互调,this(参数)必须写在构造方法第一行;
6:static不能和this一起使用;
当字节码被加载近JVM,static成员已经存在了,
但是此时对象还没有创建,没有对象,就没有this。
创建对象并对象设置初始值有两个方式:
方式1:先通过无参数构造器创建出一个对象,再通过对象调用相应的setter方法,
方式2:直接调用参数的构造器,创建出来的对象,就有了初始值。
----------------------------------------------------------------------------
通过构造器和通过setter方法都可以完成相同的功能
给对象设置数据:
1:setter注入(属性注入)
2:构造注入
------------------------------------------------------------------------------
如何选择:
1:如何存在带参数的构造器,方式2是比较简洁的。
2:如果在构建对象的时候需要初始化多个数据,如果使用方式2,那么构造器得提供N个参数,参数过大,
不直观,此时方式1,简单明了。
3:有时候需要根据数据来构建对象,此时优先选用构造器方式。