Kaip geriausiai įgyvendinti konstruktoriaus perkrovą „Java“?



Šis straipsnis supažindins jus su „Java“ konstruktoriaus perkrova. Po paaiškinimo vyks programinė demonstracija.

„Java“ atsiradimas audringai užklupo programavimo pasaulį, o pagrindinė to priežastis yra skaičiaus ypatybės. Šiame straipsnyje aptarsime konstruktoriaus perkrovimą . Toliau pateikiami patarimai bus aptarti šiame straipsnyje,

Taigi pradėkime tada,



Konstruktoriaus perkrova „Java“

Kas yra konstruktorius?

Konstruktorius yra kodo blokas, naudojamas kuriant klasės objektą. Kiekvienoje klasėje yra konstruktorius, ar tai būtų įprasta, ar abstrakti klasė. Konstruktorius yra kaip metodas, bet be grąžinimo tipo. Kai klasei nėra apibrėžtas konstruktorius, kompiliatorius sukuria numatytąjį konstruktorių.

java string split regex kelis skiriklius

Pavyzdys



viešoji klasė Studentas {// nėra konstruktoriaus privati ​​Stygos pavadinimas private int age private String std // getters and setters public void display () {System.out.println (this.getName () + '' + this.getAge () + ' '+ this.getStd ())} public static void main (String args []) {// norėdami naudoti Student klasės rodymo metodą, sukurkite Student studento objektą studentas = new Student () //, nes mes neapibrėžėme jokio konstruktoriaus , kompiliatorius sukuria numatytąjį konstruktorių. kad tas studentas.display ()}}

Ankstesnėje programoje numatytąjį konstruktorių sukuria kompiliatorius, kad būtų sukurtas tas objektas. Būtina turėti konstruktorių.

Tai atveda prie kito šio straipsnioKonstruktoriaus perkrova „Java“.

Kitų konstruktorių poreikis

Aukščiau pateiktame pavyzdyje „Student“ objektą galima sukurti tik su numatytuoju konstruktoriumi. Kai visi kiti studento požymiai nėra inicijuojami. Tačiau gali būti tam tikrų kitų konstruktorių, kurie naudojami objekto būsenai inicializuoti. pvz. -



public class Student {// atributai String name int age String std // Constructors public Student (String name) {// Konstruktorius 1 this.name = name} public Student (String name, String std) {// Konstruktorius 2 this.name = name this.std = std} public Student (String name, String std, int age) {// Konstruktorius 3 this.name = pavadinimas this.std = std this.age = age} public void display () {System.out .println (this.getName () + '' + this.getAge () + '' + this.getStd ())} public static void main (String args []) {Student stu1 = new Student ('ABC') stu1 .display () Student stu2 = new Student ('DEF', '5-C') stu2.display () Student stu3 = new Student ('GHI', '6-C', 12) stu3.display ()}}

Tai atveda prie kito šio straipsnioKonstruktoriaus perkrova „Java“.

ši () nuoroda

Ši () nuoroda gali būti naudojama parametrizuoto konstruktoriaus viduje, kad netiesiogiai iškviestumėte numatytąjį konstruktorių. Atkreipkite dėmesį, kad tai turėtų būti pirmasis konstruktoriaus teiginys.

Pavyzdys

public Student () {} // Konstruktorius 4 public Student (Stygos pavadinimas, String std, int amžius) {// Konstruktorius 3 this () // iškvies numatytąjį konstruktorių. * Jei tai nėra pirmasis konstruktoriaus sakinys, atsiras KLAIDA * this.name = pavadinimas this.std = std this.age = age

Pastaba

  • Rekursinis konstruktoriaus iškvietimas „Java“ yra neteisingas
  • Jei mes apibrėžėme bet kurį parametrizuotą konstruktorių, tada kompiliatorius nesukurs numatytojo konstruktoriaus. ir atvirkščiai, jei mes neapibrėžiame jokio konstruktoriaus, kompiliatorius pagal numatytuosius nustatymus sukuria numatytąjį konstruktorių (dar vadinamą be argo konstruktoriumi)
  • Konstruktoriaus iškvietimas turi būti pirmasis „Java“ konstruktoriaus sakinys

Taigi mes priėjome prie šio straipsnio „Konstruktoriaus perkrova„ Java ““ pabaigos. Jei norite sužinoti daugiau, patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“. „Edureka“ „Java J2EE“ ir SOA mokymo ir sertifikavimo kursai yra skirti mokyti jus tiek pagrindinėms, tiek pažangesnėms „Java“ koncepcijoms kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Turite mums klausimą? Prašau tai paminėti šio tinklaraščio komentarų skiltyje ir mes kuo greičiau susisieksime su jumis.