创建对象后,无法从静态上下文引用非静态变量

时间:2017-10-13 15:03:34

标签: java variables object static

我在尝试创建新对象时,无法从静态上下文错误中引用典型的非静态变量。 如果我使BookWord类静态,一切正常。在Java中可以吗?

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());

    }
}

1 个答案:

答案 0 :(得分:1)

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

目前,BookWord是一个内部类,使用官方术语。内部类是一种嵌套类。如果将BookWord声明为static,那么它是一个静态嵌套类。有关说明,请参阅https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html