首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建对象后,不能从静态上下文引用非静态变量。

创建对象后,不能从静态上下文引用非静态变量。
EN

Stack Overflow用户
提问于 2017-10-13 15:03:33
回答 1查看 58关注 0票数 0

当我试图创建一个新对象时,我得到了一个典型的非静态变量,它不能从静态上下文错误中引用。如果我使BookWord类是静态的,那么一切都会正常工作。用Java可以吗?

代码语言:javascript
复制
package javaapplication13;

public class JavaApplication13 {

    public class BookWord {

        private String wordCharacters;
        private int count;

        public BookWord(String word){
            wordCharacters = word;
        }

        public String getWord() {
            return wordCharacters;
        }

        public int getCount() {
            return count;
        }
    }

    public static void main(String[] args) {
        BookWord existing = new BookWord("Hello");  //  *** Error here ***

        System.out.println("The word is " + existing.getWord());
        System.out.println("The current count is " + existing.getCount());

    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-13 15:16:26

类BookWord保存对JavaApplication13对象的隐式引用。为了使它没有这样的引用,您应该声明它是静态的。

就目前情况而言,BookWord是一个内部类,可以使用官方术语。内部类是嵌套类的一种类型。如果您将BookWord声明为静态的,那么它就是一个静态嵌套类。有关解释,请参见https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46732866

复制
相关文章

相似问题

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