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 (Общие вопросы) | Просмотров: 1039 | Добавил: alex | Теги: разработка программ, программирование, Java, вложенные классы | Рейтинг: 5.0/1