这是我的班级
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();
,但这似乎不是正确的实例化。
答案 0 :(得分:2)
Private
不是static
。因此,在创建Inner
之前,您需要Private
的实例。正确的语法是
new XYZ.Inner().new Private().returnN(3);
或者,您可以Private
static
,然后就可以
new XYZ.Inner.Private().returnN(3);
答案 1 :(得分:0)
肖恩:为什么在阿兰努力回答之后你删除了recent question?我会在这里发布,以便它至少有互联网存在,但你应该重新打开它,并向Alain的答案进行投票,至少是他为回答它所付出的努力。
我应该实现一个类,当我有这样的行:
double v = className.functionName().main(a,b);
和
className.output.display(v);
我不清楚这个层次结构在className类中应该是什么样子。
从函数调用中调用main()是什么意思?从函数调用main函数?为什么这可能只是functionName(a,b)?
使用.output的意义。这应该是一个带有子功能显示()的空白吗?
输出是一个字段。没有子函数或方法这样的东西,只有对象的方法。 display()方法位于 classname 对象的对象字段中。
这里的 main()方法只是 functionName()返回的对象的一个方法。被称为 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
}
}