I Java, konstruktør kæde er en sekvens af påkaldelse konstruktører ved initialisering af et objekt. Det bruges, når vi ønsker at påkalde et antal konstruktører, den ene efter den anden ved kun at bruge en instans. I dette afsnit vil vi diskutere konstruktørkæde i Java i detaljer med korrekte eksempler. Lad os tage et hurtigt kig på hvad er en konstruktør i Java.
Konstruktør
I Java , er en konstruktør det samme som en metode, men den eneste forskel er, at konstruktøren har samme navn som klassenavnet. Det bruges til at oprette en forekomst af klassen. Det kaldes automatisk, når vi opretter et objekt i klassen. Den har ingen returtype. Husk at en konstruktør ikke kan være det abstrakt , endelig , synkroniseret , og statisk . Vi kan ikke tilsidesætte en konstruktør.
Der er to typer konstruktører i Java:
- Default Constructor (også kendt som en no-argument constructor)
- Parametriseret konstruktør
Konstruktør kæde
I konstruktørkæden kaldes en konstruktør fra en anden konstruktør i samme klasse, som denne proces er kendt som konstruktør kæde. Det sker gennem arv. Når vi opretter en instans af en afledt klasse, startes først alle konstruktørerne af den nedarvede klasse (basisklasse), hvorefter konstruktøren af den kaldende klasse (afledt klasse) aktiveres.
Vi kan opnå konstruktørkæder på to måder:
hvad er obj i java
Husk, at ændring af rækkefølgen af konstruktøren ikke påvirker outputtet.
Behovet for konstruktørkæde
Antag, at der er fem opgaver, der skal udføres. Der er to måder at udføre disse opgaver på, enten implementere alle opgaverne i en enkelt konstruktør eller oprette separate opgaver i en enkelt konstruktør.
Ved at bruge konstruktørens kædemekanisme kan vi implementere flere opgaver i en enkelt konstruktør. Så hver gang vi står over for sådanne typer problemer, bør vi bruge constructor chaining. Vi kan gøre programmet mere læsbart og forståeligt ved at bruge constructor chaining.
scan.next java
Regler for konstruktørkæde
- Et udtryk der bruger det her nøgleordet skal være den første linje i konstruktøren.
- Der skal eksistere mindst én konstruktør, der ikke bruger det her
Konstruktør Kalder fra en anden konstruktør
Kaldningen af konstruktøren kan udføres på to måder:
Bemærk: I den samme konstruktørblok kan vi ikke bruge denne() og super() samtidigt.
Lad os forstå disse to begreber gennem Java-programmer.
Eksempler på konstruktørkæder
Ringer til Current Class Constructor
Vi bruger det her() søgeord, hvis vi vil kalde den aktuelle klassekonstruktør inden for samme klasse. Brugen af denne() er obligatorisk, fordi JVM aldrig sætte det automatisk som super() søgeord. Bemærk, at denne() skal være den første linje i konstruktøren. Der skal eksistere mindst én konstruktør uden dette() søgeord .
Syntaks:
this(); or this(parameters list);
For eksempel:
this(); this('Javatpoint');
Lad os oprette et Java-program og kalde den nuværende klassekonstruktør.
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(); } }
Produktion:
I ovenstående eksempel har vi oprettet en instans af klassen uden at sende nogen parameter. Den kalder først standardkonstruktøren, og standardkonstruktøren omdirigerer kaldet til den parametriserede på grund af dette(). Udsagn inde i den parametriserede konstruktør udføres og vender tilbage til standardkonstruktøren. Derefter udføres resten af sætningerne i standardkonstruktøren, og objektet initialiseres med succes. Følgende er konstruktørens kaldesekvens:
ConstructorChain cc = new ConstructorChain(); -> ConstructorChain() -> ConstructorChain(String str) -> System.out.println() -> ConstructorChain() -> System.out.println()
Ringer til Super Class Constructor
Nogle gange er vi nødt til at kalde superklassen (overordnet klasse) konstruktøren fra den underordnede klasse (afledt klasse), i sådanne tilfælde bruger vi nøgleordet super() i den afledte klasse konstruktør. Det er valgfrit at skrive super(), fordi JVM automatisk sætter det. Det skal altid skrives i første linje. Vi får en syntaksfejl, hvis vi forsøger at kalde en superklassekonstruktør i underklassen.
t ff
Syntaks:
super(); or super(Parameter List);
super(): Den kalder superklassens no-argument- eller standardkonstruktør.
java liste
super(parametre): Den påberåber sig superklassens parametriserede konstruktør.
Husk at superklassekonstruktøren ikke kan nedarves i underklassen. Det kan kaldes fra underklassekonstruktøren ved at bruge supernøgleordet.
Lad os skabe et Java-program og implementere konstruktørkæde i en nedarvet klasse.
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(); } }
Produktion: