目录
一、构造方法/构造器——初始化对象
(一)为什么需要构造器
(二)构造器的基本介绍
(三)练习题
1.题目1
2.题目2
3.题目3
4.题目4
5.题目5
二、this关键字
(一)基本介绍
(二)注意事项和使用细节
一、构造方法/构造器——初始化对象
(一)为什么需要构造器
当我们创建一个对象时,例如Person对象,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果想要在创建Person对象时,直接指定这个Person对象的年龄和姓名就没有办法了。因此,构造方法,又称构造器,就可以帮我们解决这个问题。
(二)构造器的基本介绍
构造方法又叫构造器(construstor),是类的一种特殊的方法。主要作用:完成对新对象的初始化。
基本语法:
- 构造器的修饰符有4个:public、protected、默认、private
- 构造器没有返回值,也不能写void
- 方法名和类名必须完全一样,包括大小写
- 参数列表和成员方法一样的规则
- 构造器的调用,系统会自动地调用该类的构造器完成对 对象的初始化
- 一个类可以定义多个不同的构造器,即构造器重载
- 如果没有定义构造方法,系统会自动给类生成一个默认无参构造方法(也叫默认构造方法) Java基础常亮类
- 一旦定义了自己的构造器,默认的构造器就被覆盖了,就不能再使用默认的无参构造器,除非显式定义,即:Person(){}
- 一般的类要提供无参和全参的构造方法
10.构造器中可以写return语句
运行结果:
(三)练习题
1.题目1
判断下面代码的输出结果:
2.题目2
判断下面代码的输出结果:
3.题目3
在java测试方法中,调用method方法,代码如下,编译正确,试写出method方法的定义形式,调用语句为:System.out.println(method(method(10.0,20.0),100));
解题思路:
为了使得System.out.println(method(method(10.0,20.0),100));这行代码能够编译通过并运行,method方法需要被设计为接收两个double类型的参数,并返回一个double类型的结果。这样,内层的method(10.0, 20.0)调用会返回一个double值,这个值随后被用作外层method调用的第一个参数。
4.题目4
创建一个Employee类,属性有(名字,性别,年龄,职位,薪水),提供3个构造方法,可以初始化(1)(名字,性别,年龄,职位,薪水),(2)(名字,性别,年龄),(3)(职位,薪水),要求充分复用构造器。
5.题目5
将对象作为参数传递给方法。
题目要求:
- 定义一个Circle类,包含一个double型的radius属性代表圆的半径,findArea()方法返回圆的面积。
- 定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下:public void printAreas(Circle c, int times)
- 在printAreas方法中打印输出1到times之间的每个整数半径值,以及对应的面积。例如,times位5,则输出半径1,2,3,4,5,以及对应的圆面积。
- 在main方法中调用printAreas()方法,调用完毕后输出当前半径值。
运行结果:
二、this关键字
(一)基本介绍
this表示调用的对象,每一个对象中都有一个this,指向本对象,哪个对象调用,this就代表哪个对象。this有地址值,是对象,不是类。
代码示例:
System.out.println(this); 与System.out.println(person);的结果一样,说明this就是person对象。
(二)注意事项和使用细节
- this关键字可以用来访问本类的属性、方法、构造器
- this用于区分当前类的属性(成员变量)和局部变量。
- 访问当前类的成员方法语法:this.方法名(参数列表); 谁调用就是谁 见图1
- 访问当前类的构造器语法:this(参数列表); 注意,只能在构造器中使用(即只能在构造器中访问另外一个构造器),this必须放在第一行 见图2
- this不能在类定义的外部使用,只能在类定义的方法中使用。
- 有时候this不写,不代表它没有,只是省略了
图1 图2
下面这段代码中,new Person()时调用了无参构造方法,而无参构造中又调用了有参构造this("张三",30),所以结果是:张三 30
注意:这里的this()必须在构造器中有效代码的第一行!
this调用构造方法的多种写法:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/18843.html