我已经用Java编写了一个小程序,其中有些我只是不了解。

我编写的程序有3个类kingClass,masterClass和workClass。 workClass扩展了masterClass。

程序:在主类(kingClass)中,我声明了masterClass和workClass,并使用masterClass为变量x和y赋了值。在kingClass的结尾,我调用了addNum函数,该函数将masterClass中的两个数字相加。

现在的问题是:我希望在运行程序时它会给我两个我输入提供的数字的和,而不是我在构造函数中给定的数字的和。

如何编写该程序,以便addNum返回我输入的数字之和的值。

对不起英语不好,谢谢..

国王级

public class kingClass
{
public static void main(String[] args)
{
    masterClass mClass=new masterClass();

    mClass.setX(10);
    System.out.println(mClass.getX());

    mClass.setY(5);
    System.out.println(mClass.getY());

    workClass wClass = new workClass();
    System.out.println(wClass.addNum());
}
}


硕士课

public class masterClass
{
private int x;
private int y;

masterClass()
{
    x=0;
    y=0;
}

public void setX(int a) {x=a;}
public void setY(int a) {y=a;}

public int getX() {return x;}
public int getY() {return y;}


}


工作班级

public class workClass extends masterClass
{
int num=getX()+getY();
public int addNum() {return num;}
}

最佳答案

以下两个语句:

masterClass mClass=new masterClass();
workClass wClass = new workClass();


创建两个彼此完全独立的对象。当您修改一个时,这对另一个没有影响。

你的意思是:

public static void main(String[] args)
{
    workClass wClass = new workClass();

    wClass.setX(10);
    System.out.println(wClass.getX());

    wClass.setY(5);
    System.out.println(wClass.getY());

    System.out.println(wClass.addNum());
}




workClass扩展masterClass的事实使您可以在masterClass的实例上使用workClass的公共方法。

您的addNum()方法中还存在一个错误:

public class workClass extends masterClass
{
    public int addNum() {return getX() + getY();}
}


您当前的实现在构建时将数字加在一起,而不考虑对构建后xy所做的任何更改。

10-08 11:55