java构造方法怎么调用
-
构造方法的调用有两种方式:显式调用和隐式调用。
一、显式调用
1. 创建对象时显式调用构造方法:在创建对象时,可以通过使用”new 类名(参数)”的方式显式调用构造方法。例如:
“`java
public class Person {
private String name;
private int age;// 构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}public String getName() {
return name;
}public int getAge() {
return age;
}
}public class Main {
public static void main(String[] args) {
// 显式调用构造方法创建对象
Person person = new Person(“张三”, 18);
System.out.println(person.getName()); // 输出:张三
System.out.println(person.getAge()); // 输出:18
}
}
“`2. 调用父类构造方法:
在子类的构造方法中,可以使用”super(参数)”的方式显式调用父类的构造方法。例如:
“`java
public class Animal {
private String name;public Animal(String name) {
this.name = name;
}public String getName() {
return name;
}
}public class Dog extends Animal {
private String breed;public Dog(String name, String breed) {
super(name); // 调用父类的构造方法
this.breed = breed;
}public String getBreed() {
return breed;
}
}public class Main {
public static void main(String[] args) {
Dog dog = new Dog(“旺财”, “哈士奇”);
System.out.println(dog.getName()); // 输出:旺财
System.out.println(dog.getBreed()); // 输出:哈士奇
}
}
“`二、隐式调用
构造方法的隐式调用发生在以下情况下:1. 在使用”new”关键字创建对象时,会隐式调用默认的无参构造方法。例如:
“`java
public class Person {
private String name;
private int age;// 默认的无参构造方法
public Person() {
this.name = “未知”;
this.age = 0;
}public String getName() {
return name;
}public int getAge() {
return age;
}
}public class Main {
public static void main(String[] args) {
// 隐式调用默认的无参构造方法创建对象
Person person = new Person();
System.out.println(person.getName()); // 输出:未知
System.out.println(person.getAge()); // 输出:0
}
}
“`2. 在子类的构造方法中,如果没有显式调用父类的构造方法,则会隐式调用父类的无参构造方法。例如:
“`java
public class Animal {
private String name;// 默认的无参构造方法
public Animal() {
this.name = “动物”;
}public String getName() {
return name;
}
}public class Dog extends Animal {
private String breed;public Dog(String breed) {
this.breed = breed;
}public String getBreed() {
return breed;
}
}public class Main {
public static void main(String[] args) {
Dog dog = new Dog(“哈士奇”);
System.out.println(dog.getName()); // 输出:动物
System.out.println(dog.getBreed()); // 输出:哈士奇
}
}
“`
以上就是构造方法的调用方式,包括显式调用和隐式调用。通过这些方式,我们可以在创建对象时给对象赋予初始值,以满足不同的需求。2年前 -
Java构造方法的调用主要有两种方式:隐式调用和显式调用。
1. 隐式调用:当创建一个对象时,系统会自动调用该对象对应类的构造方法来初始化对象。这是最常见的构造方法调用方式。例如:
“`java
// 定义一个类
public class Person {
private String name;
private int age;// 构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}// 创建一个Person对象
Person person = new Person(“张三”, 20);
“`在上述代码中,当执行`new Person(“张三”, 20)`的时候,系统会自动调用`Person`类的构造方法来初始化`person`对象。
2. 显式调用:有时候我们需要在代码中手动调用构造方法,这时候可以使用`this()`或`super()`关键字来实现。`this()`用于调用当前类的其他构造方法,`super()`用于调用父类的构造方法。例如:
“`java
// 定义一个类
public class Person {
private String name;
private int age;// 构造方法1
public Person(String name) {
this.name = name;
}// 构造方法2
public Person(String name, int age) {
this(name); // 调用构造方法1
this.age = age;
}
}// 创建一个Person对象
Person person = new Person(“张三”, 20);
“`在上述代码中,当执行`new Person(“张三”, 20)`的时候,会先调用`Person(String name)`构造方法,然后再调用`Person(String name, int age)`构造方法。
另外,构造方法还可以进行重载,即定义多个有不同参数列表的构造方法。例如:
“`java
// 定义一个类
public class Person {
private String name;
private int age;// 构造方法1
public Person(String name) {
this.name = name;
}// 构造方法2
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}// 创建一个Person对象
Person person1 = new Person(“张三”);
Person person2 = new Person(“李四”, 20);
“`在上述代码中,通过重载构造方法,我们可以根据实际需求选择不同的构造方法来创建对象。
总结:Java构造方法的调用可以通过隐式调用或显式调用来实现。隐式调用是系统自动调用,在创建对象时自动执行。显式调用通过`this()`和`super()`关键字来手动调用构造方法。构造方法还可以进行重载,根据实际需求选择不同的构造方法来创建对象。
2年前 -
构造方法是一种特殊的方法,用于创建对象并初始化对象的成员变量。在Java中,构造方法的名称与类名相同,并且没有返回类型。当我们创建一个对象时,会自动调用该类的构造方法来初始化对象的成员变量。构造方法可以有多个重载形式,我们可以根据需要选择相应的构造方法。
调用构造方法的方法有两种:对象实例化和显示调用。
一、对象实例化调用构造方法
对象实例化是最常见的调用构造方法的方式。在创建一个对象的时候,会自动调用该类的构造方法以初始化对象的成员变量。创建对象的语法是通过使用关键字`new`后跟构造方法的名称和参数来创建对象。示例:假设有一个`Person`类,具有以下构造方法和成员变量:
“`java
public class Person {
private String name;
private int age;public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
“`我们可以使用以下方式来实例化对象并调用构造方法:
“`java
Person person = new Person(“Alice”, 20);
“`在这个例子中,我们创建了一个名为`person`的`Person`对象,并通过构造方法将姓名设置为”Alice”,年龄设置为20。
二、显示调用构造方法
除了在对象实例化时自动调用构造方法外,我们还可以显式地调用构造方法。这种情况下,我们首先使用关键字`new`来创建对象,并在构造方法的名称之前用类名进行限定。示例:继续使用上面的`Person`类,我们可以通过以下方式显示调用构造方法:
“`java
Person person = new Person(“Bob”, 25);
“`在这个例子中,我们创建了一个名为`person`的`Person`对象,并显式地调用了构造方法,将姓名设置为”Bob”,年龄设置为25。
显示调用构造方法的常见场景是在子类的构造方法中调用父类的构造方法。这种情况下,我们使用`super`关键字来调用父类的构造方法。
示例:假设有一个`Student`类继承自`Person`类,具有以下构造方法和成员变量:
“`java
public class Student extends Person {
private String major;public Student(String name, int age, String major) {
super(name, age);
this.major = major;
}
}
“`在这个例子中,`Student`类调用了父类`Person`的构造方法来初始化继承的成员变量。
总结:
构造方法是用于创建对象并初始化对象的成员变量的特殊方法。我们可以通过对象实例化和显示调用的方式来调用构造方法。对象实例化时会自动调用构造方法,而显示调用构造方法适用于特定的场景,如子类调用父类的构造方法。2年前