为什么要学构造器?
- 真正知道对象具体是通过调用什么代码得到的。
- 能够掌握为对象赋值的其他简便写法。
- 为以后学习面向对象编程的其他内容做支撑。
构造器的作用:
- 定义在类中的,可以用于初始化一个类的对象,并返回对象的地址。
构造器的格式如图:
调用构造器得到对象的格式如图:
构造器的分类和作用:
- 无参数构造器(默认存在的):初始化对象时,成员变量的数据均采用默认值。
- 有参数构造器:在初始化对象的时候,同时可以接收参数为对象进行赋值。
代码演示如下:
public class Car { String name; double price; /* 无参数构造器 */ public Car(){ System.out.println("==无参数构造器被调用了=="); } /* 有参数构造器 */ public Car(String n,double p){ System.out.println("==有参数构造器被调用了=="); name = n; price = p; } }
public class Test { public static void main(String[] args) { //通过调用构造器得到对象 Car c = new Car(); c.name = "宝马"; c.price = 38.9; System.out.println(c.name); System.out.println(c.price); //调用有参数构造器 Car c2 = new Car("奔驰",39.8); System.out.println(c2.name); System.out.println(c2.price); } }
构造器的注意事项:
- 任何类定义出来,默认就自带了无参数构造器,写不写都有。
- 一旦定义了有参数构造器,那么无参数构造器就没有了,如果还想用无参数构造器,此时就需要自己手写一个无参数构造器了。
this关键字是什么?
- 可以出现在构造器、方法中
- 代表当前对象的地址。
代码演示如下:
public class Car { String name; double price; /* 无参数构造器 */ public Car(){ System.out.println("无参数构造器中的this:" + this); } public void run(){ System.out.println("方法中的this:"+this); } }
public class Test { public static void main(String[] args) { //创建汽车对象 Car c = new Car(); c.run(); System.out.println(c); } }
this关键字的作用:
- 可以用于指定访问当前对象的成员变量、成员方法。