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
Atcerieties, ka konstruktora secības maiņa neietekmē izvadi.
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.
- 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
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:
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: