java构造方法 的作用是啥?
java构造方法的作用是用来创建和初始化对象的一种特殊的方法。它的名字必须和类名相同,没有返回值,不能被static、final、synchronized、abstract和native修饰。
java构造方法可以分为无参构造方法和有参构造方法。无参构造方法是默认的构造方法,如果没有显式地定义任何构造方法,编译器会自动为类生成一个无参构造方法。无参构造方法的作用是给对象的属性赋予默认值,比如String类型的默认值是null,int类型的默认值是0
有参构造方法是带有参数的构造方法,可以在创建对象的时候给对象的属性赋予指定的值。有参构造方法可以重载,也就是说可以根据不同的参数类型和个数定义多个有参构造方法。
java构造方法还可以用来复制对象,也就是说可以通过一个已存在的对象来创建一个新的对象,并把原对象的属性值复制给新对象。这可以通过在构造方法中使用this关键字来实现。
例如:
//定义一个Person类
public class Person {
//定义两个属性:name和age
private String name;
private int age;
//定义一个有参构造方法,用来给属性赋值
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//定义一个复制构造方法,用来通过一个已存在的对象创建一个新的对象,并把原对象的属性值复制给新对象
public Person(Person p) {
this.name = p.name;
this.age = p.age;
}
//定义一个方法,用来打印对象的属性值
public void print() {
System.out.println("name: " + name + ", age: " + age);
}
}
//在主方法中测试
public class Test {
public static void main(String[] args) {
//创建一个Person对象p1,使用有参构造方法给属性赋值
Person p1 = new Person("Alice", 20);
//打印p1的属性值
p1.print(); //输出:name: Alice, age: 20
//创建一个Person对象p2,使用复制构造方法通过p1创建一个新的对象,并把p1的属性值复制给p2
Person p2 = new Person(p1);
//打印p2的属性值
p2.print(); //输出:name: Alice, age: 20
//修改p1的属性值
p1.name = "Bob";
p1.age = 25;
//再次打印p1和p2的属性值,可以看到p2的属性值没有随着p1的改变而改变,说明p2是一个独立的对象,不是p1的引用
p1.print(); //输出:name: Bob, age: 25
p2.print(); //输出:name: Alice, age: 20
}
}
java构造方法是java类的重要组成部分,它可以让我们方便地创建和初始化对象,以及复制对象