Java基础第七章(构造器)

构造器

构造器没有返回值,名字必须和类名一样

构造器的作用

构造器并不是用来创建对象,而是对对象进行初始化

构造器的建立和使用

1.不能有返回值,void也不能写 2.名字要和类名相同 3.形参列表规则和一般方法的一样

具体例子

!!当创建对象,并且赋值过后,构造器就已经被调用,即Person p1 = new Person(”smith“,80)时已经调用,不需要用.去调用

编译效果图

构造器的细节

一个类可以定义多个构造器,构造器可以重载;重载方法:根据设定不同的形参列表来完成构造器的重载,如:

系统会自动调用构造器

在创建对象空间后,系统再进行调用构造器,先有对象空间再调用构造器

对象不可以主动调用构造器!不能用对象.类名去调用构造器

默认无参构造器

!!!关键

下面这个例子中,自己定义了构造器,对象不能使用无参创建的方法

编译不通过,不能采用无参创建对象的方法

无参构造器可以设置默认值

对象的创建流程

显式初始化在构造器执行前执行,即在类中定义属性先执行

 this关键字

该构造器方法体中的name根据就近原则为形参,而不是属性,因此没有任何作用

 this.属性名代表是当前对象的属性(系统先创建了对象再使用构造器)

this的理解

this在堆中有一个地址,地址指向自己所在的对象空间,this和dog1指向的地址相同,this也是一个对象,this可以理解为在方法中对象的对象名

this的细节

3.用this访问成员方法

4.this可以访问构造器

this(参数列表);不可以this.构造器名;this调用构造器只能在构造器中调用,不能在成员方法中调用构造器,通过不同的形参列表可以调用不同的构造器;访问构造器的句子必须放在第一条;访问构造器时一定要传入参数,参数要和被访问构造器参数类型对应匹配

如图所示,在构造器T(){}中访问构造器T(String name,int age){},在访问时传入了两个参数

当对象调用f3方法时,两个输出语句输出的内容可能不同;第一个System语句输出的name和num会根据就近原则查找,name查找到成员方法中的局部变量“smith”;而this.name就是访问调用该方法对象的实际name属性

this的应用

方法1(比较方法compareTo中只传入一个对象):

在compareTo的方法中进行的操作是,对象调用该方法后,用this.属性代表当前对象的属性与传入的形参对象属性作比较,若相同则返回ture,否返回false

 p1.方法(p2),方法中的this.属性代表了p1的属性

方法2(Compareto方法中传入两个对象):

返回值类型为一个包装类的方法

1.

2.

匿名对象

 new Test()是一个匿名对象,没有对象引用,只能用一次,栈中没有对象名指向它,用完即被销毁

复用构造器

调用构造器只能在构造器中调用,而且只能是在构造器第一句话中调用,因此,一个构造器只能服用一次构造器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值