构造方法(构造函数)
当一个对象被创建时,构造方法用来初始化该对象,所有的类都有构造方法。
注意:
1.构造方法必须和它所在的类的名字相同;
2.可以有参也可以无参,但一定无返回值,默认的构造方法无参数;
3.如果手动定义了构造方法(不论无参还是带参),默认构造方法就会失效;
4.只能在对象实例化的时候调用;
5.构造方法在类内不可被普通成员方法调用
// 构造方法名与类名相同
// 没有返回值类型
<class_name>(){}
// 无参构造方法
public class Demo {
// 方法名与类名相同 无返回值类型
public Demo() { // 可以带参数也可以无参
System.out.println("无参构造方法");
}
// 普通成员方法
public void run() { // 方法名任意 有返回值类型
System.out.println("普通成员方法");
}
}
// 当时实例化demo时 不论是否显式的定义了Demo这个构造方法 都不会报错
// 因为会默认定义一个无参的构造方法
public static void main (String[] args){
Demo demo = new Demo();
}
// 如果手动定义了一个构造方法,不论有参还是无参,默认的构造方法会失效
public class Demo { // 带参的构造方法
public Demo (String age){
System.out.println("我的年龄是"+age);
}
}
public class DemoTest {
public static void main(String[] args){
// 此处如果不带参数就会提示 Expected 1 arguments but found 0 可见 默认的无参构造方法失效了
Demo demo = new Demo();
}
}
这里如果想要继续 Demo demo = new Demo()
生效,需要显式定义
另外,构造方法的调用在构造方法之间,不可以被普通成员方法调用,如图写法报错,编译器认为是在调用普通的Demo成员方法而不是构造方法
image.png