Внутренний пример Java -10 Программа
ВНУТРЕННИЕ КЛАССЫ JAVA
В Java также возможно вложение классов (класс внутри класса). Назначение вложенных классов — группировать классы, которые принадлежат друг другу, что делает ваш код более читабельным и удобным для сопровождения.
Чтобы получить доступ к внутреннему классу, создайте объект внешнего класса, а затем создайте объект внутреннего класса:
Синтаксис внутреннего класса
класс Java_Outer_class{
//код
класс Java_Inner_class{
//код
}
}
Преимущества:
- Вложенные классы представляют собой особый тип отношений, который может получить доступ ко всем членам (членам данных и методам) внешнего класса, включая частные.
- Вложенные классы используются для разработки более удобного для чтения и сопровождения кода, поскольку они логически группируют классы и интерфейсы только в одном месте.
- Оптимизация кода: требуется меньше кода для написания.
ПРОГРАММА 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.