在java中可以直接从方法调用构造函数吗?


构造函数类似于方法,它在创建类的对象时被调用,通常用于初始化类的实例变量。构造函数与它们的类同名,并且没有返回类型。

无需显式调用构造函数,这些构造函数会在实例化时自动调用。

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("输入学生的姓名: ");

      String name = sc.nextLine();

      System.out.println("输入学生的年龄: ");

      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


以上是 在java中可以直接从方法调用构造函数吗? 的全部内容, 来源链接: utcz.com/z/337990.html

回到顶部