【发布时间】:2018-01-11 12:02:06
【问题描述】:
我正在大学学习 Java 编程课程,下周要参加考试。我正在浏览过去的试卷,有点卡在这个问题上:
Consider the following class X: class X { private boolean a; private int b; ... }
(i) Write a constructor for this class. [2 marks]
(ii) Show how to create an object of this class. [2 marks]
(iii) Add a method out, which returns b if a is true, and -b otherwise. This method must be usable for any client of
this class. [2 marks]
我在下面包含了我的代码,但我坚持的是这个问题的最后一部分。如何在新对象上调用方法(因为我们在课堂上没有教过)?或者,这个问题是否暗示该方法必须可用于任何对象,而不仅仅是创建的对象?
对不起,我糟糕的代码和愚蠢的问题,我真的在 Java 上苦苦挣扎。
public class X {
private boolean a;
private int b;
X(final boolean i, final int j) {
a = i;
b = j;
}
static int Out(boolean a, int b) {
if (a == true) {
return b;
}
return -b;
}
public static void main(String[] args) {;
X object1 = new X(true, 5);
System.out.println(Out(object1));
}
}
【问题讨论】:
-
注意 Java 命名约定。方法名称必须以小写字符开头
-
out不应该是静态的,也不应该带任何参数。比你可以称之为object1.out() -
Java Nuts and Bolts - Using Objects: Calling an Object's Methods - 您可能需要完成整个课程教程。另外,我认为您还没有正确完成前两个问题。您可能打算创建该类的非静态方法,该方法使用构造函数中设置的值,而不是仅使用传递参数的静态方法。
-
@ArifMustafa 是的,但过去 4 周我一直在准备,通过我的讲师演示。现在,我正在浏览过去的试卷(y)
-
如果您正在处理对象,请不要使用静态方法。使用object1.Out()获取想要的值并将方法重写为public int getB();