我们可以直接从 Java 中的方法调用构造函数吗?
java 8object oriented programmingprogramming
构造函数类似于方法,它在创建类的对象时被调用,通常用于初始化类的实例变量。构造函数与其类同名,没有返回类型。
无需显式调用构造函数,这些构造函数会在实例化时自动调用。
Java 中的 this 关键字是对当前类的对象的引用。使用它,您可以引用类的字段、方法或构造函数。
因此,如果您需要显式调用构造函数,则可以使用"this()"。
从方法调用构造函数
不,您不能从方法调用构造函数。唯一可以使用“this()”或“super()”调用构造函数的地方是另一个构造函数的第一行。如果您尝试在其他地方显式调用构造函数,将生成编译时错误。
示例
import java.util.Scanner; public class Student { private String name; private int age; Student(){} Student(String name, int age){ this.name = name; this.age = age; } public void SetValues(String name, int age){ this(name, age); } public void display() { System.out.println("name: "+this.name); System.out.println("age: "+this.age); } public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println("Enter the name of the student: "); String name = sc.nextLine(); System.out.println("Enter the age of the student: "); int age = sc.nextInt(); Student obj = new Student(); obj.SetValues(name, age); obj.display(); } }
编译时错误
Student.java:12: error: call to this must be first statement in constructor this(name, age); ^ 1 error