这是我的课
public class XYZ{
public static void main(String[] args) {
int n = 5;
Object myObject;
//somehow call returnN(n);
} //end main
static class Inner{
private class Private{
private int returnN(int n){
return n;
}
}
}//end of Inner
}我正试图从main打电话给returnN。我尝试过myObject = new XYZ.Inner.Private();,但这似乎不是正确的实例化。
发布于 2015-11-04 01:12:17
Private不是static。因此,在创建一个Inner之前,您需要一个Private实例。正确的语法是
new XYZ.Inner().new Private().returnN(3);或者,您可以创建Private static,然后只需完成
new XYZ.Inner.Private().returnN(3);发布于 2015-11-11 04:38:20
肖恩:你为什么要在阿兰努力回答后删除你的recent question呢?我会把它张贴在这里,以便它至少有一个互联网存在,但你应该重新打开它,并提高投票阿兰的答案,至少为他的努力回答它。
问题
当我有这样的行时,我应该实现一个类:
double v = className.functionName().main(a,b);和
className.output.display(v);我不清楚这个层次结构在className类中应该是什么样子。
从函数调用调用main()意味着什么?从函数中调用主函数?为什么这不是functionName(a,b)?
以及使用.output的意义。这是否应该是一个带子函数display()的空?
阿兰的回答
Alain O'Dea的回答
output是一个字段。没有子函数或方法,只有对象上的方法。display()方法位于类名对象的对象字段上。
functionName().返回的对象上的main()方法被称为main()没有什么特殊意义。
我可以从给出的字句中推断出这样的情况:
我将假设className是这样使用的ClassName的一个实例:
public class Main {
public static void main(String[] args) {
ClassName className = new ClassName();
Object a = new Object(); // replace with correct a
Object b = new Object(); // replace with correct b
double v = className.functionName().main(a,b);
className.output.display(v);
}
}ClassName的定义如下:
public class ClassName {
public Output output = new Output;
public Mainable functionName() {
return new Mainable();
}
}Output.java:
public class Output {
public void display(double v) {
// implement display here
}
}Mainable.java:
public class Mainable {
public double main(Object a, Object b) {
return 0.0d; // put actual impl here
}
}https://stackoverflow.com/questions/33512008
复制相似问题