Внутренний пример Java -10 Программа

ВНУТРЕННИЕ КЛАССЫ JAVA

В Java также возможно вложение классов (класс внутри класса). Назначение вложенных классов — группировать классы, которые принадлежат друг другу, что делает ваш код более читабельным и удобным для сопровождения.

Чтобы получить доступ к внутреннему классу, создайте объект внешнего класса, а затем создайте объект внутреннего класса:

Синтаксис внутреннего класса

класс Java_Outer_class{

//код

класс Java_Inner_class{

//код

}

}

Преимущества:

  1. Вложенные классы представляют собой особый тип отношений, который может получить доступ ко всем членам (членам данных и методам) внешнего класса, включая частные.
  2. Вложенные классы используются для разработки более удобного для чтения и сопровождения кода, поскольку они логически группируют классы и интерфейсы только в одном месте.
  3. Оптимизация кода: требуется меньше кода для написания.

ПРОГРАММА 1: простой пример создания внутренних классов.

Обратите внимание, здесь я создал два класса, внешний класс и внутренний класс, имеющие доступ к обоим классам.

КОД:

пакет MyPack;

класс Внешний класс {

целое х = 10;

класс Внутренний класс {

int у = 5;

}

}

общедоступный класс Основной {

public static void main(String[] args) {

OuterClass myOuter = new OuterClass();

OuterClass.InnerClass myInner = myOuter.new InnerClass();

System.out.println(myInner.y + myOuter.x);

}

}

ВЫВОД:

15

Внутренний класс члена Java

Нестатический класс, созданный внутри класса, но вне метода, называется внутренним классом-членом. Он также известен как обычный внутренний класс. Его можно объявить с модификаторами доступа, такими как public, default, private и protected.

ПРОГРАММА 2:пример члена Java

КОД:

класс TestMemberOuter1{

private int data=30;

класс Внутренний{

void msg(){System.out.println("data is"+data);}

}

public static void main(String args[]){

TestMemberOuter1 obj=новый TestMemberOuter1();

TestMemberOuter1.Inner in=obj.new Inner();

in.msg();

}

}

ВЫВОД:

данные 30

В отличие от «обычного» класса, внутренний класс может быть закрытым или защищенным. Если вы не хотите, чтобы внешние объекты обращались к внутреннему классу, объявите класс как закрытый:

ПРОГРАММА 3:Пример частного класса во внутреннем классе.

КОД:

класс Внешний класс {

целое х = 10;

частный класс InnerClass {

int у = 5;

}

}

общедоступный класс Основной {

public static void main(String[] args) {

OuterClass myOuter = new OuterClass();

OuterClass.InnerClass myInner = myOuter.new InnerClass();

System.out.println(myInner.y + myOuter.x);

}

}

ВЫВОД:

Main.java:13: ошибка: OuterClass.InnerClass имеет частный доступ в OuterClass
OuterClass.InnerClass myInner = myOuter.new InnerClass();

Статический внутренний класс

Внутренний класс также может быть static, что означает, что вы можете получить к нему доступ, не создавая объект внешнего класса:

ПРОГРАММА 4.Пример статического внутреннего класса с ключевым словом static.

КОД:

класс Внешний класс {

целое х = 10;

статический класс InnerClass {

int у = 5;

}

}

общедоступный класс Основной {

public static void main(String[] args) {

OuterClass.InnerClass myInner = new OuterClass.InnerClass();

System.out.println(myInner.y);

}

}

ВЫВОД:

5

Примечание: как и статические атрибуты и методы, статический внутренний класс не имеет доступа к членам внешнего класса.

Доступ к внешнему классу из внутреннего класса

Одним из преимуществ внутренних классов является то, что они могут обращаться к атрибутам и методам внешнего класса:

ПРОГРАММА 5: Доступ к внешнему классу из примера внутреннего класса.

КОД:

класс Внешний класс {

целое х = 10;

класс Внутренний класс {

public int myInnerMethod() {

возврат х;

}

}

}

общедоступный класс Основной {

public static void main(String[] args) {

OuterClass myOuter = new OuterClass();

OuterClass.InnerClass myInner = myOuter.new InnerClass();

System.out.println(myInner.myInnerMethod());

}

}

ВЫВОД:

10

Анонимный внутренний класс Java

Анонимный внутренний класс Java — это внутренний класс без имени, для которого создается только один объект. Анонимный внутренний класс может быть полезен при создании экземпляра объекта с некоторыми «дополнительными функциями», такими как перегрузка методов класса или интерфейса, без фактического создания подкласса класса.

ПРОГРАММА 6: Пример анонимного класса Java

КОД:

абстрактный класс Person{

abstract void eat();

}

класс TestAnonymousInner{

public static void main(String args[]){

Человек p=новый человек(){

void eat(){System.out.println("красивые фрукты");}

};

п.есть();

}

}

ВЫВОД:

хорошие фрукты

Локальный внутренний класс Java

Класс, созданный внутри метода, в java называется локальным внутренним классом. Локальные внутренние классы — это внутренние классы, определенные внутри блока. Как правило, этот блок является телом метода.

ПРОГРАММА 7: Пример 1 локального внутреннего класса Java.

КОД:

пакет MyPack;

общедоступный класс localInner1{

private int data=30;//переменная экземпляра

void display(){

класс Местный{

void msg(){System.out.println(data);}

}

Local l=новый Local();

л.сообщение();

}

public static void main(String args[]){

localInner1 obj=новый localInner1();

объект.дисплей();

}

}

ВЫВОД:

30

30

ПРОГРАММА 8. Пример 2 локального внутреннего класса Java.

КОД:

класс localInner2{

private int data=30;//переменная экземпляра

void display(){

int value=50;//локальная переменная должна быть final только до jdk 1.7

класс Местный{

void msg(){System.out.println(value);}

}

Local l=новый Local();

л.сообщение();

}

public static void main(String args[]){

localInner2 obj=новый localInner2();

объект.дисплей();

}

}

ВЫВОД:

50

Статический вложенный класс Java

Статический класс — это класс, созданный внутри класса, который в Java называется статическим вложенным классом. Он не может получить доступ к нестатическим элементам данных и методам. Доступ к нему можно получить по имени внешнего класса.

Он может обращаться к статическим членам данных внешнего класса, в том числе к закрытым.

Статический вложенный класс не может получить доступ к нестатическим (экземплярным) элементам данных или

Пример статического вложенного класса Java с методом экземпляра

ПРОГРАММА 9. Еще один пример вложенного класса Java Static.

Примечание. Мы можем получить доступ к данным обоих классов, используя статическое ключевое слово.

КОД:

класс TestOuter1{

static int data=30;

статический класс Внутренний{

void msg(){System.out.println("data is" +data);}

}

public static void main(String args[]){

TestOuter1.Inner obj=новый TestOuter1.Inner();

объект.msg();

}

}

ВЫВОД:

data is 30

ПРОГРАММА 10: Пример внутреннего внешнего метода.

КОД:

класс Внешний {

void externalMethod() {

int х = 98;

System.out.println(“inside externalMethod”);

класс Внутренний {

void innerMethod() {

System.out.println("x= "+x);

}

}

Inner y = new Inner();

у.внутренний метод();

}

}

класс MethodLocalVariableDemo {

public static void main(String[] args) {

Outer x=new Outer();

х.внешний метод();

}

}

ВЫВОД:

inside outerMethod
x= 98

Программа 11: Пример внутреннего класса Java с использованием метода.

Здесь я создал два метода: внутренний и внешний класс.

КОД:

// Программа Java для иллюстрации статических вложенных классов

// Импорт необходимых классов

импорт java.util.*;

// Класс 1

// Внешний класс

класс Внешний {

// Метод

private static void externalMethod()

{

// Распечатать заявление

System.out.println(“inside externalMethod”);

}

// Класс 2

// Статический внутренний класс

статический класс Внутренний {

public static void display()

{

// Распечатать заявление

System.out.println("внутренний метод внутреннего класса");

// Вызов метода внутри метода main()

внешний метод();

}

}

}

// Класс 3

// Основной класс

класс GFG {

// Основной метод драйвера

public static void main(String args[])

{

Outer.Inner obj = new Outer.Inner();

// Вызов метода через созданный выше экземпляр

obj.отображение();

}

}

ВЫВОД:

inside inner class Method
inside outerMethod
Thank you ,I hope this program tutorial clear to you .If any queries please comment.