logo

Kas ir konstruktoru ķēde Java?

Java valodā, konstruktora ķēdēšana ir izsaukšanas secība konstruktori pēc objekta inicializācijas. To izmanto, ja mēs vēlamies izsaukt vairākus konstruktorus vienu pēc otra, izmantojot tikai gadījumu. Šajā sadaļā mēs apspriedīsim konstruktoru ķēde Java detalizēti ar atbilstošiem piemēriem. Īsi apskatīsim kas ir konstruktors Java valodā.

Konstruktors

In Java , konstruktors ir tas pats, kas metode, taču vienīgā atšķirība ir tā, ka konstruktoram ir tāds pats nosaukums kā klases nosaukumam. To izmanto, lai izveidotu klases gadījumu. Tas tiek izsaukts automātiski, kad mēs izveidojam klases objektu. Tam nav atgriešanas veida. Atcerieties, ka konstruktors nevar būt abstrakts , galīgais , sinhronizēts , un statisks . Mēs nevaram ignorēt konstruktoru.

Java ir divu veidu konstruktori:

  • Noklusējuma konstruktors (pazīstams arī kā bezargumentu konstruktors)
  • Parametrizēts konstruktors

Konstruktora ķēde

Konstruktoru ķēdē konstruktors tiek izsaukts no cita konstruktora tajā pašā klasē, kā šis process ir pazīstams konstruktora ķēdēšana. Tas notiek mantojuma ceļā. Veidojot atvasinātas klases instanci, vispirms tiek izsaukti visi mantotās klases (bāzes klases) konstruktori, pēc tam tiek izsaukts izsaucošās klases (atvasinātās klases) konstruktors.

Mēs varam panākt konstruktora ķēdi divos veidos:

Rendēt karti
    Tajā pašā klasē:Ja konstruktori pieder vienai klasei, mēs izmantojam šis No bāzes klases:Ja konstruktors pieder pie dažādām klasēm (vecāku un bērnu klasēm), mēs izmantojam super atslēgvārds, lai izsauktu konstruktoru no bāzes klases.

Atcerieties, ka konstruktora secības maiņa neietekmē izvadi.

Kas ir konstruktoru ķēde Java

Nepieciešamība pēc konstruktoru ķēdes

Pieņemsim, ka ir jāveic pieci uzdevumi. Ir divi veidi, kā veikt šos uzdevumus: vai nu ieviest visus uzdevumus vienā konstruktorā, vai izveidot atsevišķus uzdevumus vienā konstruktorā.

Izmantojot konstruktora ķēdes mehānismu, mēs varam īstenot vairākus uzdevumus vienā konstruktorā. Tāpēc ikreiz, kad saskaramies ar šāda veida problēmām, mums vajadzētu izmantot konstruktora ķēdi. Mēs varam padarīt programmu lasāmāku un saprotamāku, izmantojot konstruktora ķēdi.

Konstruktoru ķēdes noteikumi

  • Izteiciens, kas izmanto šis atslēgvārdam ir jābūt konstruktora pirmajai rindai.
  • Pasūtietkonstruktoru ķēdē nav nozīmes.
  • Jābūt vismaz vienam konstruktoram, kas neizmanto šis

Konstruktora izsaukšana no cita konstruktora

Konstruktora izsaukšanu var veikt divos veidos:

mans monitora izmērs
    Izmantojot šo() atslēgvārdu:To izmanto, ja mēs vēlamies izsaukt pašreizējo klases konstruktoru tajā pašā klasē.Izmantojot super() atslēgvārdu:To izmanto, ja mēs vēlamies izsaukt superklases konstruktoru no bāzes klases.

Piezīme. Vienā konstruktora blokā mēs nevaram izmantot šo () un super () vienlaikus.

Izpratīsim šos divus jēdzienus, izmantojot Java programmas.

Konstruktoru ķēdes piemēri

Zvana pašreizējās klases konstruktoram

Mēs izmantojam šis () atslēgvārds, ja mēs vēlamies izsaukt pašreizējo klases konstruktoru tajā pašā klasē. Šī() izmantošana ir obligāta, jo JVM nekad nelieciet to automātiski kā super() atslēgvārds. Ņemiet vērā, ka šim () ir jābūt konstruktora pirmajai rindai. Jābūt vismaz vienam konstruktoram bez šo() atslēgvārdu .

Sintakse:

 this(); or this(parameters list); 

Piemēram:

 this(); this('Javatpoint'); 

Izveidosim Java programmu un izsauksim pašreizējo klases konstruktoru.

reaģēt inline stilā

ConstructorChain.java

 public class ConstructorChain { //default constructor ConstructorChain() { this('Javatpoint'); System.out.println('Default constructor called.'); } //parameterized constructor ConstructorChain(String str) { System.out.println('Parameterized constructor called'); } //main method public static void main(String args[]) { //initializes the instance of example class ConstructorChain cc = new ConstructorChain(); } } 

Izvade:

Kas ir konstruktoru ķēde Java

Iepriekš minētajā piemērā mēs esam izveidojuši klases gadījumu, nenododot nevienu parametru. Vispirms tas izsauc noklusējuma konstruktoru, un noklusējuma konstruktors novirza zvanu uz parametrizēto šī () dēļ. Paziņojumi parametrizētajā konstruktorā tiek izpildīti un atgriežas noklusējuma konstruktorā. Pēc tam tiek izpildīti pārējie priekšraksti noklusējuma konstruktorā un objekts tiek veiksmīgi inicializēts. Tālāk ir norādīta konstruktora izsaukšanas secība:

 ConstructorChain cc = new ConstructorChain(); -> ConstructorChain() -> ConstructorChain(String str) -> System.out.println() -> ConstructorChain() -> System.out.println() 

Zvanu superklases konstruktoram

Dažreiz mums ir jāizsauc superclass (parent class) konstruktors no atvasinātās klases (atvasinātās klases), mēs izmantojam atslēgvārdu super() atvasinātās klases konstruktorā. Nav obligāti jāraksta super(), jo JVM to ievieto automātiski. Tas vienmēr jāraksta pirmajā rindā. Mēs iegūstam sintakses kļūdu, ja mēģinām izsaukt superklases konstruktoru bērnu klasē.

Sintakse:

 super(); or super(Parameter List); 

super(): Tas izsauc superklases bezargumentu vai noklusējuma konstruktoru.

super(parametri): Tas izsauc superklases parametrizēto konstruktoru.

Atcerieties, ka virsklases konstruktors nevar tikt mantots apakšklasē. To var izsaukt no apakšklases konstruktora, izmantojot super atslēgvārdu.

Izveidosim Java programmu un ieviesīsim konstruktoru ķēdi mantotā klasē.

parādīt slēptās lietotnes

ConstructorChaining.java

 //parent class or base class class Demo { //base class default constructor Demo() { this(80, 90); System.out.println('Base class default constructor called'); } //base class parameterized constructor Demo(int x, int y) { System.out.println('Base class parameterized constructor called'); } } //derived class or child class class Prototype extends Demo { //derived class default constructor Prototype() { this('Java', 'Python'); System.out.println('Derived class default constructor called'); } //derived class parameterized constructor Prototype(String str1, String str2) { super(); System.out.println('Derived class parameterized constructor called'); } } public class ConstructorChaining { //main method public static void main(String args[]) { //initializes the instance of example class Prototype my_example = new Prototype(); } } 

Izvade:

Kas ir konstruktoru ķēde Java