我在尝试创建新对象时,无法从静态上下文错误中引用典型的非静态变量。 如果我使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());
}
}
答案 0 :(得分:1)
类BookWord包含对JavaApplication13对象的隐式引用。为了使它没有这样的引用,你应该声明它是静态的。
目前,BookWord是一个内部类,使用官方术语。内部类是一种嵌套类。如果将BookWord声明为static,那么它是一个静态嵌套类。有关说明,请参阅https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html