Приветствую Вас ГостьВторник, 14.05.2024, 19:39

Программирование на Java, Android, Delphi


Блог

Главная » 2013 » Январь » 24 » Вложенные классы в Java
12:04
Вложенные классы в Java
В Java допускается вкладывать описание одних классов внутрь других. При этом внутренние классы имеют доступ ко всем членам внешнего класса, в который они вложены. Напротив, внешний класс не имеет доступа к членам внутреннего класса.
class OuterClass{
private int OuterValue;
private void OuterMethod(){
JOptionPane.showMessageDialog(null, "Вызван метод класса OuterClass");
}

//объявляем внутренний класс
class InnerClass{
private int InnerValue;
public void InnerMethod(){
JOptionPane.showMessageDialog(null, "Вызван метод класса InnerClass");
//из внутреннего класса есть доступ к членам внешнего класса
OuterValue = 10;
OuterMethod();
}
}
//объект внутреннего класса
InnerClass InnerClassRef;

//конструктор внешнего класса
public OuterClass() {
//создаем объект внутреннего класса
InnerClassRef = new InnerClass();
}


}

//*************************
OuterClass oc = new OuterClass();
oc.InnerClassRef.InnerMethod();
Вложенный класс может быть статическим, в этом случае он может вызывать только статические методы внешнего класса и использовать статические переменные внешнего класса, в который он вложен.
class OuterClass{
static private int OuterValue; //объявлен как статический
static private void OuterMethod(){ //объявлен как статический
JOptionPane.showMessageDialog(null, "Вызван метод класса OuterClass");
}

//объявляем внутренний класс
static class InnerClass{
private int InnerValue;
public void InnerMethod(){
JOptionPane.showMessageDialog(null, "Вызван метод класса InnerClass");
//из внутреннего класса есть доступ к членам внешнего класса
OuterValue = 10; //используем статическую переменную внешнего класса
OuterMethod(); //используем статический метод внешнего класса
}
}
//объект внутреннего класса
InnerClass InnerClassRef;

//конструктор внешнего класса
public OuterClass() {
//создаем объект внутреннего класса
InnerClassRef = new InnerClass();
}
}
Категория: Java (Общие вопросы) | Просмотров: 981 | Добавил: alex | Теги: разработка программ, программирование, Java, вложенные классы | Рейтинг: 5.0/1
Категории раздела
Java (Общие вопросы) [17]
Java (Библиотека, пакеты Java) [17]
Java (Разработка программного обеспечения на Java) [5]
Java (Среда разработки NetBeans) [5]
JSF + PrimeFaces [21]
Java EE [11]
Разное [3]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Январь 2013  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Архив записей