Kaip įdiegti įdėtą klasę „Java“?



Šis straipsnis apie įdėtąsias klases „Java“ padės jums suprasti, kaip įdiegti įdėtas klases naudojant pavyzdinę programą.

„Java“ klasę galima apibrėžti kitoje klasėje ir tokios klasės vadinamos įdėtomis klasėmis. Šios klasės padeda logiškai sugrupuoti klases, kurios naudojamos tik vienoje vietoje. Tai padidina inkapsuliacijos naudojimą ir sukuria labiau įskaitomą ir prižiūrimą kodą. Šis tinklaraštis „Įterptoji„ Java “klasė“ suteiks jums greitą įvadą į įdėtas klases . Toliau pateikiamos šio tinklaraščio temos:

Įdėta klasė „Java“

The klasė klasėje parašyta vadinama įdėta klase, o vidinę klasę turinti klasė - išorine. Žemiau yra keletas dalykų, kuriuos reikia atsiminti įdėtoms „Java“ klasėms -





kaip padaryti gilią kopiją java
  • Įdėtos klasės sritį riboja ją apimanti klasė.
  • Įdėtoji klasė turi prieigą prie klasės, kurioje ji yra, narių. Bet uždaroji klasė negali pasiekti įdėtos klasės narių.
  • Lizdinė klasė yra jos uždaras klasės narys.
  • Įdėtoji klasė gali būti paskelbta vieša, privačia, saugoma ar privačia paketu.

Įterptųjų klasių tipai

Vidinė / nestatinė įdėta klasė: „Java“ sistemoje nestatinės klasės yra saugumo mechanizmas. Klasė negali būti susieta su prieiga redaguoti privati, bet jei klasę turite kaip kitos klasės narį, tai ne statinę klasę galima paversti privačia.

Vidinių klasių tipai ir minusas



  • Vidinė klasė
  • Metodas - vietinė vidinė klasė
  • Anoniminė vidinė klasė

Vidinė klasė

Norėdami sukurti vidinę klasę, tiesiog turite parašyti klasę. Vidinė klasė gali būti privati, į kurią negalima patekti iš objektas už klasės ribų. Žemiau pateikiama programa, skirta sukurti vidinę klasę. Šiame pavyzdyje vidinė klasė yra privati ​​ir į ją patenka naudojant metodą.

class Outer_Test {int num // vidinės klasės privati ​​klasė Inner_Test {public void print () {System.out.println ('Tai mūsų vidinė klasė')}}} // Vidinės klasės pasiekimas iš metodo void display_Inner () { Inner_Test internal = new Inner_Test () internal.print ()}} public class My_class {public static void main (String args []) {// Išorinės klasės inicijavimas Outer_Test external = new Outer_Test () // Prieiga prie display_Inner () metodo . external.display_Inner ()}}

Rezultatas
Lizdinė klasės vidinė- Edureka

Metodas - vietinė vidinė klasė

„Java“ klasė gali būti parašyta per a ir tai yra vietinis tipas. Panašiai kaip vietiniai kintamieji, metodo metu yra ribojama vidinės klasės apimtis. Metodinė vietinė vidinė klasė įtraukiama tik į tą metodą, kuriame apibrėžta vidinė klasė. Žemiau pateikta programa parodo, kaip naudotis metodu-vietine vidine klase.



public class Outerclass {// išorinės klasės egzemplioriaus metodas negalioja my_Method () {int num = 1001 // method-local vidinės klasės klasė StarInner_Test {public void print () {System.out.println ('Tai žvaigždės vidinė klasė' + num)}} // vidinės klasės pabaiga // Prieiga prie vidinės klasės StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass external = new Outerclass () external. mano_metodas ()}}

Rezultatas

Anoniminė vidinė klasė

Anoniminė vidinė klasė yra vidinė klasė, paskelbta be klasės pavadinimo. Anoniminėje vidinėje klasėje mes tuo pačiu metu deklaruojame ir instituojame. Jie paprastai naudojami, kai reikia nepaisyti klasės ar sąsajos metodo. Žemiau pateikta programa parodo, kaip naudoti anoniminę vidinę klasę -

abstrakti klasė AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest internal = new AnonymousInnerTest () {public void mytest () {System.out.println ('Tai yra anoniminės vidinės testų klasės pavyzdys ')}} internal.mytest ()}}

Išvestis

Statinė įdėta klasė: Į yra įdėta klasė, kuri yra statinis išorinės klasės narys. Skirtingai nuo vidinės klasės, statinė įdėta klasė negali pasiekti išorinės klasės narių kintamųjų, nes statinei įdėtai klasei nereikia išorinės klasės egzemplioriaus. Taigi nėra nuorodos į išorinę klasę naudojant „OuterClass“. Tai. Statinės įdėtos klasės sintaksė yra -

klasės „MyOuter“ {static class Nested_Test {}}

Statinės įdėtos klasės pavyzdys

public class Outer {static class Nested_Test {public void my_method () {System.out.println ('This is the Edureka's nested test class')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. „Nested_Test“ („nestested.my_method“)}}

Rezultatas

paslaugų bilietų sistemos mokymas

Skirtumas tarp statinių ir nestatinių įdėtų klasių

Statinės įdėtos klasės neturi prieigos prie kitų uždaromos klasės narių tiesiogiai. Būdamas statiškas, jis turi prieiti prie nestatinių savo uždarančios klasės narių per objektą, o tai reiškia, kad jis negali tiesiogiai nurodyti nestatinių savo uždarančios klasės narių. Dėl šio apribojimo statinės įdėtos klasės naudojamos retai.

Nestatinės įterptosios klasės turi prieigą prie visų jos išorinės klasės narių ir gali tiesiogiai kreiptis į juos tuo pačiu būdu, kaip ir kiti nestatiniai išorinės klasės nariai.

Prieš eidami į šio straipsnio pabaigą, pažvelkime į keletą pagrindinių punktų.

Pagrindiniai dalykai, kuriuos reikia atsiminti

  • Vidinė klasė traktuojama kaip eilinis klasės narys.
  • Kadangi vidinė klasė yra išorinės klasės narė, savo vidinei klasei galite pritaikyti skirtingus prieigos modifikatorius, pvz., Apsaugotus, privačius.
  • Kadangi „Nested“ klasė yra jos uždaromos klasės narys, galite naudoti. (dot) žymėjimas norint pasiekti įdėtą klasę ir jos narius.
  • Naudojant įdėtą klasę, jūsų kodas bus lengviau įskaitomas ir bus geresnis kapsuliavimas .
  • Vidinė klasė turi prieigą prie kitų išorinės klasės narių, net jei jie yra paskelbti privačiais.

Tuo mes baigėme šį tinklaraštį apie „Java“ įdėtas klases. Jei norite sužinoti daugiau apie „Java“, patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą visame pasaulyje. „Edureka“ „Java J2EE“ ir SOA mokymo ir sertifikavimo kursai yra skirti studentams ir specialistams, norintiems būti „Java“ kūrėjais. Kursas sukurtas tam, kad galėtumėte pradėti žvalgytis į „Java“ programavimą ir išmokyti pagrindines ir pažangesnes „Java“ koncepcijas kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Turite mums klausimą? Prašau paminėti tai šio tinklaraščio „Nested Class in Java“ komentarų skyriuje, ir mes kuo greičiau susisieksime su jumis.