(八)构造方法
虫师 创建于 almost 7 years 之前
最后更新: less than a minute 之前
阅读数: 139
构造方法
构造方法用于初始化一个新建的对象, 如果你没有定议任何构造方法的形式, 程式会为你取一个不带任何参数的构造函数, 那么你产生类的对像时只能用不带参数的方法。
- 1.构造器必须与类同名(如果一个源文件中有多个类, 那么构造器必须与公共类同名)
- 2.每个类可以有一个以上的构造器
- 3.构造器可以有 0 个、 1 个或 1 个以上的参数
- 4.构造器没有返回值
- 5.构造器总是伴随着 new 操作一起调用
public class Father {
public Father() {
System.out.println("调用了无参的构造函数.");
}
public Father(String msg) {
System.out.println("调用了有参的构造函数: " + msg);
}
public static void main(String args[]) {
Father f1 = new Father();
Father f2 = new Father("Hello");
}
}
运行结果:
调用了无参的构造函数.
调用了有参的构造函数: Hello
构造函数中"super"用法
构造方法和普通方法都用会关键字 super
指向父类,但是用的方法不一样。在构造方法中,调用父类中的某一个构造函数。在构造方法中的用法。
public class Son extends Father {
public Son(String msg) {
super(msg); // 调用父类的构造方法
}
public static void main(String args[]) {
Son f = new Son("Hello");
}
}
运行结果:
调用了有参的构造函数: Hello
构造函数中"this"的用法
接下来的例子中涉及到两个用法。
this(参数):在自身构造方法内部调用其它构造方法。
this.成员变量:调用本类中的成员变量。
public class Son2 {
//定义成员变量
private String name; // 实例化对象时,默认值是null
/**
* 无参数的构造方法
*/
Son2() {
System.out.println("我是二儿子!");
}
/**
* 有参数的构造方法
*/
Son2(String name) {
this(); //调用无参数的构造方法
this.name = name; // 调用成员变量
}
public void say() {
System.out.println("我叫:" + name);
}
public static void main(String[] args) {
Son2 s = new Son2("王小二");
s.say();
}
}
运行结果:
我是二儿子!
我叫:王小二