Java 从外部类引用静态嵌套类对象
我想引用外部类中静态嵌套类的对象的变量。这样行吗Java 从外部类引用静态嵌套类对象,java,Java,我想引用外部类中静态嵌套类的对象的变量。这样行吗 public class GuiApp { static class book{ static book [] book = new book[1000]; static Boolean overdue; static Boolean checkedOut; static int bookNum; static String personName;
public class GuiApp {
static class book{
static book [] book = new book[1000];
static Boolean overdue;
static Boolean checkedOut;
static int bookNum;
static String personName;
static String dueDate;
static int month;
static int date;
static int year;
static String dateCheckedOut;
}
}
例如,后面引用外部类中book[50]的变量字符串personName
book.book[50].personName = "Bob";
我不确定我是否理解正确,所以我想知道这是否可行 在访问该数组的元素之前:
book.book[50].personName = "Bob";
您必须初始化该元素:
book.book[50] = new GuiApp.book();
我还建议不要对类和数组使用相同的名称
但是,将
图书
类的所有属性设置为静态没有任何意义,因为这意味着所有图书都具有相同的值。哦,我刚刚去掉了static关键字,但现在我无法引用外部类中的变量和图书对象。W@noobProgrammer那么book[]数组应该保持静态。不过,您应该重命名该变量。它可能与类名冲突。@Eranbook.book[50]=new-GuiApp.book()
我认为这不是必需的?@eatSleepCode如果您不这样做,book.book[50]将保持为空,并且book.book[50]。personName
将抛出NullPointerException。@Eran您访问的静态字段不需要类的对象来访问它。这里没有内部类。有一个静态嵌套类。不是同一件事。你的类名应该以大写字母开头,不要在两件事上使用相同的名称。需要将变量book的名称更改为arrBook或books。