Java, konstruktorių grandinės yra iškvietimo seka konstruktoriai inicijuojant objektą. Jis naudojamas, kai norime iškviesti daugybę konstruktorių, vieną po kito naudodami tik egzempliorių. Šiame skyriuje aptarsime konstruktorių grandinės sukūrimas Java išsamiai su tinkamais pavyzdžiais. Greitai pažiūrėkime kas yra konstruktorius Java.
Konstruktorius
Į Java , konstruktorius yra tas pats kaip metodas, tačiau vienintelis skirtumas yra tas, kad konstruktoriaus pavadinimas yra toks pat kaip ir klasės pavadinimas. Jis naudojamas klasės egzemplioriui sukurti. Jis iškviečiamas automatiškai, kai sukuriame klasės objektą. Jis neturi grąžinimo tipo. Atminkite, kad konstruktorius negali būti abstrakčiai , galutinis , sinchronizuoti , ir statinis . Negalime nepaisyti konstruktoriaus.
„Java“ yra dviejų tipų konstruktoriai:
- Numatytasis konstruktorius (taip pat žinomas kaip beargumentinis konstruktorius)
- Parametrizuotas konstruktorius
Konstruktoriaus grandinės
Konstruktorių grandinėje konstruktorius iškviečiamas iš kito konstruktoriaus toje pačioje klasėje, kaip šis procesas žinomas konstruktorių grandinės. Tai atsiranda paveldėjimo būdu. Kai sukuriame išvestinės klasės egzempliorių, pirmiausia iškviečiami visi paveldėtos klasės (bazinės klasės) konstruktoriai, o po to – iškviečiamos klasės (išvestinės klasės) konstruktorius.
Konstruktoriaus grandinę galime pasiekti dviem būdais:
vandens ženklas žodyje
Atminkite, kad konstruktoriaus tvarkos pakeitimas išvesties neturi įtakos.
Konstruktorių grandinės poreikis
Tarkime, reikia atlikti penkias užduotis. Yra du būdai atlikti šias užduotis: arba įgyvendinti visas užduotis viename konstruktoriuje, arba sukurti atskiras užduotis viename konstruktoriuje.
Naudodami konstruktorių grandinės mechanizmą, galime įgyvendinti kelias užduotis viename konstruktoriuje. Taigi, kai susiduriame su tokio tipo problemomis, turėtume naudoti konstruktorių grandinę. Programą galime padaryti skaitomesnę ir suprantamesnę, naudodami konstruktorių grandinę.
np.unikali
Konstruktorių grandinės taisyklės
- Išraiška, kuri naudoja tai raktinis žodis turi būti pirmoji konstruktoriaus eilutė.
- Turi egzistuoti bent vienas konstruktorius, kuris nenaudoja tai
Konstruktoriaus iškvietimas iš kito Konstruktoriaus
Konstruktorių iškviesti galima dviem būdais:
Pastaba: tame pačiame konstruktoriaus bloke negalime vienu metu naudoti šio() ir super().
Supraskime šias dvi sąvokas per „Java“ programas.
Konstruktoriaus grandinės pavyzdžiai
Skambinama dabartinės klasės konstruktoriui
Mes naudojame tai () raktinį žodį, jei norime iškviesti esamą klasės konstruktorių toje pačioje klasėje. Naudoti this() yra privaloma, nes JVM niekada nedėkite jo automatiškai kaip super () raktažodį. Atminkite, kad tai () turi būti pirmoji konstruktoriaus eilutė. Turi būti bent vienas konstruktorius be šį() raktinį žodį .
Sintaksė:
this(); or this(parameters list);
Pavyzdžiui:
this(); this('Javatpoint');
Sukurkime Java programą ir iškvieskime esamą klasės konstruktorių.
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(); } }
Išvestis:
Aukščiau pateiktame pavyzdyje sukūrėme klasės egzempliorių neperduodami jokio parametro. Pirmiausia jis iškviečia numatytąjį konstruktorių, o numatytasis konstruktorius nukreipia iškvietimą į parametrizuotą dėl to (). Teiginiai parametruoto konstruktoriaus viduje yra vykdomi ir grįžta į numatytąjį konstruktorių. Po to likusieji numatytojo konstruktoriaus teiginiai vykdomi ir objektas sėkmingai inicijuojamas. Toliau pateikiama konstruktoriaus iškvietimo seka:
ConstructorChain cc = new ConstructorChain(); -> ConstructorChain() -> ConstructorChain(String str) -> System.out.println() -> ConstructorChain() -> System.out.println()
Skambiname super klasės konstruktoriui
Kartais tokiais atvejais turime iškviesti superclass (parent class) konstruktorių iš antrinės klasės (išvestinės klasės), išvestinėje klasės konstruktoriuje naudojame raktinį žodį super(). Neprivaloma rašyti super(), nes JVM jį įdeda automatiškai. Jis visada turi būti rašomas pirmoje eilutėje. Mes gauname sintaksės klaidą, jei bandome iškviesti superklasės konstruktorių antrinėje klasėje.
aktorius ranbir kapoor amžiaus
Sintaksė:
super(); or super(Parameter List);
super(): Jis vadina beargumentinį arba numatytąjį superklasės konstruktorių.
Parsisiųsti youtube vaizdo įrašą su vlc
super (parametrai): Jis iškviečia superklasės parametrinį konstruktorių.
Atminkite, kad superklasės konstruktorius poklasyje negali būti paveldėtas. Jį galima iškviesti iš poklasio konstruktoriaus, naudojant super raktinį žodį.
Sukurkime Java programą ir įgyvendinkime konstruktorių grandinę paveldėtoje klasėje.
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(); } }
Išvestis: