作用
构造方法(Construtor)是一个 特殊 的方法
创建一个对象时,构造方法用来 初始化 对象 。
通过 new 关键字创建对象,就是在调用构造方法:
new Phone()
构造方法的定义
格式
权限 构造方法名(参数列表){
// 方法体
}
格式要求:
- 构造方法 不能 声明返回类型,也不能用
void - 构造方法的方法名 必须与类名相同(注意区分大小写,Java是严格区分大小写的)
- 构造方法可以重载
- 不要在构造方法里使用
return来返回当前类的对象,因为构造方法的返回值是隐式的 - 构造方法不能被
static、final、synchronized、abstract修饰。- 构造方法用于初始化一个对象,所以用 static 修饰没有意义。
- 构造方法不能被子类继承,所以用 final 和 abstract 修饰没有意义。
- 多个线程不会同时创建内存地址相同的同一个对象,所以用 synchronized 修饰没有必要。
默认构造方法(无参构造方法)
所有的类都有构造方法,如果我们没有定义构造方法,Java编译器 自动提供了一个 无参数构造方法,称之为 默认构造方法
一旦定义了构造方法,Java编译器 就 不会提供 默认构造方法
构造方法的作用
在构造方法中写一些初始化的代码
public class Phone {
// String name="iphone12";
// int ram=4;
String name;
int ram;
public Phone(){
System.out.println("默认构造方法(无参构造方法)");
//设置成员变量初始值
name="iphone12";
ram=4;
}
}
有参构造方法
可以更好的初始化成员变量
public class Phone {
String name;
int ram;
/*
有参构造方法,可以自定义传值,然后给成员变量赋值
*/
public Phone(String str,int i){
name=str;
ram=i;
}
public static void main(String[] args) {
//当类中没有定义构造方法,java编译器加上 默认构造方法,无参构造方法
// Phone phone=new Phone();//通过new关键字创建对象,就是在调用构造方法(默认构造方法,无参构造方法)
// System.out.println(phone.name);
// System.out.println(phone.ram);
//
// phone.name="小米15";
// phone.ram=64;
// System.out.println(phone.name);
// System.out.println(phone.ram);
Phone phone=new Phone("小米15",64);
System.out.println(phone.name);
System.out.println(phone.ram);
}
}
构造方法 与 普通方法 的区别
- 构造方法 不需要 声明 返回类型,也不能用
void
如果声明了返回类型,就 不再是构造方法 了 - 构造方法不能被
static、final、synchronized、abstract修饰。 - 不要在构造方法里使用
return
例子
public class Student {
private String name;
private int age;
// 无参数构造方法
public Student() {
}
// 有参数构造方法
public Student(String name,int age) {
this.name = name;
this.age = age;
}
}