Դաս 20։ Java – Inner classes

0

Այս դասընթացում կքննարկենք Java- ի ներքին դասերը՝ inner classes:

Nested Classes

Java-ում, ինչպես մեթոդները, այնպես էլ դասի փոփոխականները կարող են ունենալ մեկ այլ դաս, որպես իրենց անդամ: Java-ում թույլատրվում է գրել դաս մեկ այլ դասի ներսում: Դա կոչվում է nested class՝ ներդրված դաս, իսկ այն դասը, որը կրում է ներքին դասը կոչվում է արտաքին դաս՝ outer class։

Syntax

Հետևյալը ներկայացնում է nested class գրելու շարահյուսությունը: Այստեղ Outer_Demo դասը արտաքին դասն է, իսկ Inner_Demo-ն՝ nested class-ը։

class Outer_Demo {

class Nested_Demo {

}

}

Nested class-երը բաժանվում են երկու տեսակի՝

  • Non-static nested classes – Սրանք դասի ոչ ստատիկ անդամներ են:

  • Static nested classes – Սրանք դասի ստատիկ անդամ են:

Ներքին դասեր/ Inner Classes (Non-static Nested Classes)

Ներքին դասը Java-ում անվտանգության մեխանիզմ է: Մենք գիտենք, որ դասը չի կարող կապվել մուտքի մոդիֆիկատորի հետ private կերպոց, սակայն եթե ունենք դասը, որպես մեկ այլ դասի անդամ, ապա նեքին դասը կարող է դառնալ private։

Ներքին դասեր (Inner Class) երեք տեսակի են, կախված նրանից, թե որտեղ և ինչպես եք դրանք սահմանում: Դրանք են՝

  • Inner Class

  • Method-local Inner Class

  • Anonymous Inner Class

Inner Class

Inner Class-ի ստեղծումը բավականին պարզ է: Պարզապես պետք է գրել մի դաս մեկ այլ դասի մեջ: Ի տարբերություն սովորական դասի, ներքին դասը կարող է լինել private։ Ներքին դասը private սահմանելուց հետո, այն չեն կարող տեսնելի դասից դուրս գտնվող օբյեկտները։

Հետևյալը ներքին դասի ստեղծման ծրագիրն է: Ներքևում բերված օրինակում, մենք ներքին դասը դարձնում ենք private։

Օրինակ՝

class Outer_Demo {

int num;

// inner class

private class Inner_Demo {

public void print() {

System.out.println(“This is an inner class”);

}

}

// Accessing he inner class from the method within

void display_Inner() {

Inner_Demo inner = new Inner_Demo();

inner.print();

}

}

public class My_class {

 

public static void main(String args[]) {

// Instantiating the outer class

Outer_Demo outer = new Outer_Demo();

// Accessing the display_Inner() method.

outer.display_Inner();

}

}

Այստեղ դուք կարող եք տեսնել, որ Outer_Demo-ն արտաքին դաս է, իսկ Inner_Demo-ն ներքին դաս, display_Inner ()-ը մեթոդ է, որի ներսում մենք ստեղծում ենք ներքին դաս։ Այս մեթոդը բխում է հիմնական մեթոդից:

Եթե դուք կազմեք և գործարկեք վերը նշված ծրագիրը, ապա կստանաք հետևյալ արդյունքը։

Արդյունքը՝

This is an inner class.

Accessing the Private Members

Ինչպես արդեն նշվեց, ներքին դասերը նույնպես օգտագործվում են դասի private անդամներին հասնելու համար: Ենթադրենք, դասն ունի Private անդամներ: Դրա ներսում գրեք ներքին դաս, վերադարձրեք Private անդամները ներքին դասի մեթոդից, օրինակ՝ getValue (), և վերջապես, մեկ այլ դասից (որից ցանկանում եք մուտք գործել Private անդամներին) կանչեք getValue() method-ը։

Ներքին դասի օրինակ ստեղծելու համար առաջին հերթին պետք է ստեղծել արտաքին դաս: Ինչից հետո, օգտագործելով արտաքին դասի օբյեկտը, դու կարող եք ստեղծել ներքին դասը:

Outer_Demo outer = new Outer_Demo();

Outer_Demo.Inner_Demo inner = outer.new Inner_Demo();

Հետևյալ ծրագիրը ցույց է տալիս, թե ինչպես մուտք գործել դեպի դասի private անդամներ՝ օգտագործելով ներքին դասը:

Օրինակ՝

class Outer_Demo {

// private variable of the outer class

private int num = 175;

// inner class

public class Inner_Demo {

public int getNum() {

System.out.println(“This is the getnum method of the inner class”);

return num;

}

}

}

 

public class My_class2 {

 

public static void main(String args[]) {

// Instantiating the outer class

Outer_Demo outer = new Outer_Demo();

// Instantiating the inner class

Outer_Demo.Inner_Demo inner = outer.new Inner_Demo();

System.out.println(inner.getNum());

}

}

Արդյունքը՝

This is the getnum method of the inner class: 175

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.