JAVA类和对象(2)
对象的构造及初始化
- 如何初始化对象
- 构造方法
- 概念
- 特征
- this在钩造方法中有什么运用
对象的构造及初始化
如何初始化对象
在对象里我们如何初始化对象呢?
那我们有没有更好的赋值方法呢?
那就进入构造方法吧
构造方法
概念
1.构造方法(也称为构造器)是一次特殊的成员方法,名字必须与类 名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。
2.构造方法是怎样实现的呢?
名字和类名相同,没有返回值类型,设置为void也不行
在创建对象时由编译器自动调用,并且在对象的生命周期内只 调用一次
特性
1.名字必须与类名相同
2.没有返回值,设置为void类型也不行
3.创建对象时由编译器自己调用,并且在对象的生命周期内只调用一次(相当于人的出生,每个人只能出生一次)
4.构造方法可以重载(用户根据自己的需求提供不同参数的构造方法)
5. 当一个类中没有一个构造方法的时候,java会自动生成构造方法,但是如果有一个构造方法之后那么每一个构造方法都需要自己构造,java不会再提供构造方法
6. 构造方法的作用就是对对象中的成员进行初始化,但不给对象开辟空间
7. 完成一个对象的构造是先分配内存,然后调用合适的构造方法
上述两个构造方法:名字相同,参数列表不同,因此构成了方法的重载
8.如果用户没有定义构造方法,编译器会生成一份默认的构造方法,生成的默认构造方法一定是无参的。
注意:一旦用户定义了一个构造方法,那么编译器将不会再生成,那么每个构造方法都需要用户自己去定义,比如:用户实例化了两个对象,用户定义了一个构造方法,那么编译器将不会再提供构造方法,另一个也需要用户去定义。
那我们修改这个代码
9.如果没给构造方法传递参数,但是在类里面写了可调用的构造方法,那么编译器也会报错
this在构造方法中的运用
构造方法中,可以通过this调用其他构造方法来简化代码
格式:this(…)
this这条调用构造方法的语句必须放在第一行,不然会报错
如果不放在第一行报错了
注意运用this调用构造方法和运用this是没有关系的,this调用构造方法还是需要放在第一排
1.this(…);调用当前类当中的其他构造方法,只能在当前的构造方法内部来使用,只能在第一行
2.this.sex是访问当前对象的属性
3.this.fun()调用当前对象的方法
4.注意不可以形成环,不然会报错