В «Углубленном анализе, основанном на роли внутренних классов Java» вы можете понять некоторые вещи о внутренних классах Java, но во внутренних классах все же есть некоторые места, достойные нашего внимательного изучения...
Ниже приведены некоторые сведения о внутренних классах Java, которые я суммировал и которыми делюсь с вами....
один: статические внутренние классы могут иметь статические члены, но нестатические внутренние классы не могут иметь статические члены.
Как это понять?
Взгляните на код ниже:
тест публичного класса {
частный int номер = 1;
// Нестатические внутренние классы могут иметь нестатические члены
частный класс InnerTest {
// ошибка Нестатические внутренние классы не могут иметь статические члены
// частный статический int inNumber = 2;
частный int inNumber = 2;
общественный InnerTest() {
setNumber (2);
inNumber = inNumber + номер;
System.out.println("innerTest---" + inNumber);
}
}
//Частный метод теста
частный недействительный setNumber (число int) {
этот.номер = номер;
}
//Конструктор
публичный тест() {
InnerTest in = новый InnerTest();
System.out.println("тест");
}
public static void main(String[] args) {
Тестовый тест = новый тест();
// внутренний тест---4
// тест
}
}
тест публичного класса {
частный статический int номер = 1;
имя частной строки = «тест»;
// статический внутренний класс
частный статический класс InnerTest {
// Статические внутренние классы могут иметь нестатические члены
частный int inNumber = 2;
общественный InnerTest() {
//Статические внутренние классы могут получать доступ к статическим членам внешних классов
установитьНомер (2);
inNumber = inNumber + номер;
System.out.println("innerTest---" + inNumber);
// ошибка статический внутренний класс не может получить доступ к нестатическим членам внешнего класса
//System.out.println(имя);
}
}
//Статический частный метод Test
Private static void setNumber(int n) {
число = п;
}
//Конструктор
публичный тест() {
InnerTest in = новый InnerTest();
System.out.println("тест");
}
public static void main(String[] args) {
Тестовый тест = новый тест();
// внутренний тест---4
// тест
}
}
Легко ли понять...
Подводя итог: