Внутренний класс в java означает один класс, который является членом другого класса. В , существуют различные типы внутренних классов. Эта статья поможет вам разобраться во всех этих классах. Следующие указатели будут рассмотрены подробно,
- Вложенный внутренний класс
- Метод Локальные внутренние классы
- Анонимные внутренние классы
- Статические вложенные классы
Итак, давайте начнем с этой статьи о внутреннем классе в Java,
Внутренний класс в Java
Вложенный внутренний класс
Этот класс имеет доступ к любому значению частного экземпляра внешнего класса. Написание одного класса в другом классе также разрешено в Java. Класс, записанный внутри, известен как вложенный класс, а класс, содержащий внутренний класс, известен как внешний класс.
Синтаксис
class externalplace {class innerplace {}}
пример
В приведенном ниже примере мы делаем внутренний класс закрытым и получаем доступ к классу с помощью метода.
class Outer_place {int num private class Inner_place {public void print () {System.out.println ('Это внутренний класс')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} открытый класс My_class {public static void main (String args []) {Outer_place outer = new Outer_place () outer.display_Inner ()}}
Вывод
Здесь Внешнее место - это внешний класс, а Внутреннее место - это внутренний класс.
Продолжая эту статью о внутреннем классе в Java,
Доступ к частным членам
Внутренние классы также используются для доступа к закрытым членам класса. Предположим, есть класс, имеющий частные члены для доступа к ним. Теперь напишите внутренний класс внутри класса и получите доступ к закрытым членам из метода внутри внутреннего класса.
Вот пример,
class Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('Это метод getnum внутреннего класса:') return num}}} открытый класс My_class {public static void main (String args []) {Outer_place outer = new Outer_place () Outer_place.Inner_place inner = outer.new Inner_place () System.out.println (inner.getNum ())}}
Вывод
Двигаясь дальше,
Метод локальных внутренних классов
В Java вы можете написать класс внутри метода, который будет известен как локальный тип. Как и все локальные переменные, объем внутреннего класса ограничен внутри метода.
пример
В следующем примере будет показано, как реализуется локальный внутренний класс метода.
открытый класс Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('метод для внутренних классов' + num)}} MethodInner_place inner = new MethodInner_place () inner.print ( )} public static void main (String args []) {Outerplace outer = new Outerplace () outer.my_Method ()}}
Вывод
Продолжая эту статью о внутреннем классе в Java,
Анонимный внутренний класс
Любой внутренний класс, объявленный без имени класса, называется анонимным внутренним классом. В случае анонимных внутренних классов мы создаем и объявляем его одновременно.
Когда мы хотим переопределить метод класса или интерфейса, мы используем этот класс.
Синтаксис
AnonymousInner obj1 = new AnonymousInner () {общедоступный метод void () {}}
пример
абстрактный класс AnonymousInner {public abstract void mymethod ()} открытый класс Outer_class {public static void main (String args []) {AnonymousInner inner = new AnonymousInner () {public void mymethod () {System.out.println ('пример анонимного внутренний класс ')}} inner.mymethod ()}}
Вывод
Продолжая эту статью о внутреннем классе в Java,
Как аргумент анонимного внутреннего класса
При этом, если метод принимает объект интерфейса, абстрактного класса или конкретного класса, то мы можем реализовать интерфейс, передать объект методу и расширить абстрактный класс.
Синтаксис
объект метод (новый класс () {public void do {}})
пример
// interface interface Message {String greet ()} public class My_class {// объект интерфейсного сообщения принимается этим методом public void displayMessage (Message m) {System.out.println (m.greet () + ', пример анонимный внутренний класс как аргумент ')} public static void main (String args []) {// Создание экземпляра класса My_class obj = new My_class () // Передача анонимного внутреннего класса в качестве аргумента obj.displayMessage (new Message () {public String greet () {return 'Привет'}})}}
Вывод
Продолжая эту статью о внутреннем классе в Java,
Анонимный внутренний класс указанного подкласса
Исходный код
class Demo {void show () {System.out.println ('i was in show method of class')}} class Flavor1Demo {static Demo d = new Demo () {void show () {super.show () System. out.println ('я присутствовал в классе Flavor1Demo')}} public static void main (String [] args) {d.show ()}}
Вывод
контроллер представления модели в Java
Продолжая эту статью о внутреннем классе в Java,
Анонимный внутренний класс как исполнитель указанного Интерфейс
Исходный код
class Flavor2Demo {// класс, реализующий интерфейс Hello static Hello h = new Hello () {public void show () {System.out.println ('я присутствовал в анонимном классе')}} public static void main (String [] args) {h.show ()}} интерфейс Привет {void show ()}
Вывод
Продолжая эту статью о внутреннем классе в Java,
Статические вложенные классы
Эти классы технически не называются внутренними классами. Эти классы похожи на статический член внешнего класса. Статический вложенный класс не имеет доступа к переменным и методам внешнего класса. Нам не нужно создавать экземпляр внешнего класса, к нему можно получить доступ напрямую, используя статические члены.
Синтаксис
Внешний класс {Статический класс nested_example {}}
пример
public class Outer {статический класс Nested_Example {public void my_method () {System.out.println ('Это вложенный класс')}} public static void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () nested.my_method ()}}
Вывод
На этом мы подошли к концу этой статьи. Если вы хотите узнать больше,проверить от Edureka, надежной компании онлайн-обучения. Курс обучения и сертификации по Java J2EE и SOA от Edureka разработан, чтобы обучить вас базовым и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.
Есть вопрос к нам? Пожалуйста, укажите это в комментариях к этой статье, и мы свяжемся с вами как можно скорее.