将数据变量从方法传递给构造函数Java

时间:2014-12-17 08:32:56

标签: java methods constructor

我想在方法中获取变量sub的值并将其传递给我的构造函数

//这是我的方法

private int sub;
public void getSubj (int sub) {
   this.sub = sub;
}

//这是我的构造函数

public schedule (int sub) {
    subject = sub;
    System.out.print(subject);
}

2 个答案:

答案 0 :(得分:1)

构造函数完成后调用方法。在调用构造函数之前,不能调用任何类的方法。

您仍然可以在构造函数中调用方法。

public schedule (int sub) {
    subject = sub;
    System.out.print(subject);
    getSubj(sub);
}

答案 1 :(得分:1)

你的问题没有多大意义。

当您调用构造函数时,您将从使用此构造函数创建的实例外部传递数据。

方法getSubj看起来像一个setter(尽管它的名字)。这是在调用构造函数之后更新对象状态的另一种方法,但是它没有向构造函数传递任何东西,因为它不能在构造函数执行之前被调用(除非构造函数调用它) ,在这种情况下,构造函数将数据传递给它,而不是相反的方式。)

你的代码会更有意义:

private int sub;
public void setSubj (int sub) // renamed from getSubj, since it's a setter
{
    this.sub = sub;
}

public schedule (int sub) 
{
    this.sub = sub;
}

public static void main (String[] args)
{
    schedule s = new schedule (10); // invoke the constructor
    s.setSubj(20); // invoke the setter method to change the state of the instance
}