首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实例化静态嵌套类的内部类?

如何实例化静态嵌套类的内部类?
EN

Stack Overflow用户
提问于 2015-11-04 01:06:00
回答 2查看 51关注 0票数 0

这是我的课

代码语言:javascript
复制
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();,但这似乎不是正确的实例化。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-04 01:12:17

Private不是static。因此,在创建一个Inner之前,您需要一个Private实例。正确的语法是

代码语言:javascript
复制
new XYZ.Inner().new Private().returnN(3);

或者,您可以创建Private static,然后只需完成

代码语言:javascript
复制
new XYZ.Inner.Private().returnN(3);
票数 2
EN

Stack Overflow用户

发布于 2015-11-11 04:38:20

肖恩:你为什么要在阿兰努力回答后删除你的recent question呢?我会把它张贴在这里,以便它至少有一个互联网存在,但你应该重新打开它,并提高投票阿兰的答案,至少为他的努力回答它。

问题

当我有这样的行时,我应该实现一个类:

代码语言:javascript
复制
double v = className.functionName().main(a,b);

代码语言:javascript
复制
className.output.display(v);

我不清楚这个层次结构在className类中应该是什么样子。

从函数调用调用main()意味着什么?从函数中调用主函数?为什么这不是functionName(a,b)?

以及使用.output的意义。这是否应该是一个带子函数display()的空?

阿兰的回答

Alain O'Dea的回答

output是一个字段。没有子函数或方法,只有对象上的方法。display()方法位于类名对象的对象字段上。

functionName().返回的对象上的main()方法被称为main()没有什么特殊意义。

我可以从给出的字句中推断出这样的情况:

我将假设className是这样使用的ClassName的一个实例:

代码语言:javascript
复制
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的定义如下:

代码语言:javascript
复制
public class ClassName {
    public Output output = new Output;
    public Mainable functionName() {
        return new Mainable();
    }
}

Output.java:

代码语言:javascript
复制
public class Output {
    public void display(double v) {
        // implement display here
    }
}

Mainable.java:

代码语言:javascript
复制
public class Mainable {
    public double main(Object a, Object b) {
        return 0.0d; // put actual impl here
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33512008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档