java中什么是构造方法及其作用

java中什么是构造方法及其作用

构造方法就是与类同名的那个方法,它的作用是可以用来初始化

class Person{
public Person(String n,int a){ //构造方法
 name = n;
 age = a;
 System.out.println(n+""+a);
}
 private String name;
 private int age;
public static void main(String[] args){
Person p = new Person("张三",14);//这就是作用

}
}

new一个对象的时候要用到构造函数,例如Hello hello = new Hello();这时调用的是Hello的无参数构造方法;Hello hello = new Hello("hi");这个是调用Hello有参数构造方法,在JAVA中如果不写构造方法的话,会默认加上一个无参数的构造方法,但是如果已经有了一个有参数的构造方法,那么无参数的构造方法就不会默认被加上.如果Hello类中已经有了一个有参数的构造方法,这时再使用 Hello hello = new Hello();来创建对象的时候就会出错,这就是为什么书上要强调写了有参数的构造方法就最好加一个无参数的构造方法.
 
Java中,默认构造方法(也称为无参构造方法)是在没有显式定义任何构造方法时,由编译器自动提供的构造方法。默认构造方法的主要作用是允许创建类的实例,而无需传递任何参数。 ### 默认构造方法作用 1. **对象创建**:默认构造方法允许创建类的实例,而无需传递任何参数。 2. **初始化变量**:如果类中没有定义任何构造方法,编译器会提供一个默认构造方法,该方法会初始化所有成员变量为其默认值(例如,整数类型初始化为0,对象类型初始化为null等)。 ### 代码示例 ```java public class Person { private String name; private int age; // 默认构造方法 public Person() { // 初始化成员变量为默认值 name = "Unknown"; age = 0; } // 带参数的构造方法 public Person(String name, int age) { this.name = name; this.age = age; } // Getter 和 Setter 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public static void main(String[] args) { // 使用默认构造方法创建对象 Person person1 = new Person(); System.out.println("Name: " + person1.getName() + ", Age: " + person1.getAge()); // 使用带参数的构造方法创建对象 Person person2 = new Person("Alice", 25); System.out.println("Name: " + person2.getName() + ", Age: " + person2.getAge()); } } ``` ### 解释 1. **默认构造方法**:在`Person`类中,如果没有定义任何构造方法,编译器会自动生成一个默认构造方法。该方法将`name`初始化为`"Unknown"`,`age`初始化为`0`。 2. **带参数的构造方法**:除了默认构造方法,我们还可以定义带参数的构造方法,以便在创建对象时传递初始值。 3. **使用默认构造方法**:在`main`方法中,我们使用默认构造方法创建了一个`Person`对象`person1`,其`name`和`age`分别为默认值。 通过这个示例,我们可以看到默认构造方法在对象创建和成员变量初始化中的重要作用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值