Kuidas kõige paremini konstruktori ülekoormust Java-s rakendada?



See artikkel tutvustab teile Java-i konstruktori ülekoormamist. Selgitusele järgneb programmiline demonstratsioon.

Java tulek võttis programmeerimismaailma tormis ja selle peamine põhjus on selle kaasnenud arvuomadused. Selles artiklis käsitleme konstruktori ülekoormamist . Järgmisi näpunäiteid käsitletakse selles artiklis,

Alustagem siis





Konstruktori ülekoormus Java-s

Mis on konstruktor?

Konstruktor on koodiplokk, mida kasutatakse klassi objekti loomiseks. Igal klassil on konstruktor, olgu see siis tavaline klass või abstraktne klass. Konstruktor on täpselt nagu meetod, kuid ilma tagasitüübita. Kui klassi jaoks pole ühtegi konstruktorit määratletud, loob kompilaator vaikekonstruktori.

raamistike tüübid seleenis

Näide



avalik klass Õpilane {// no constructor private Stringi nimi private int age private String std // saab ja seadista avalik void display () {System.out.println (this.getName () + '' + this.getAge () + ' '+ this.getStd ())} public static void main (String args []) {// õpilasklassi kuvamismeetodi kasutamiseks looge õpilase üliõpilase objekt = uus õpilane () // kuna me pole veel ühtegi konstruktorit määratlenud , kompilaator loob vaikekonstruktori. nii, et õpilane. kuva ()}}

Ülalolevas programmis loob vaikekonstruktori kompilaator, nii et objekt luuakse. Ehitaja peab olema.

See viib meid selle artikli järgmise artikliniKonstruktori ülekoormus Java-s.

Vajadus teiste ehitajate järele

Ülalolevas näites saab õpilase objekti luua ainult vaikekonstruktoriga. Kui kõiki teisi õpilase atribuute ei lähtestata. Kuid võib olla ka teisi konstruktoreid, mida kasutatakse objekti oleku initsialiseerimiseks. näiteks -



avaliku klassi õpilane {// atribuudid Stringi nimi int vanus String std // Konstruktorid public Student (Stringi nimi) {// Konstruktor 1 this.name = nimi} public Student (Stringi nimi, String std) {// Konstruktor 2 this.name = nimi this.std = std} public Student (stringi nimi, String std, int vanus) {// Konstruktor 3 this.name = nimi 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 ()}}

See viib meid selle artikli järgmise artikliniKonstruktori ülekoormus Java-s.

see () viide

seda viidet () saab kasutada parametriseeritud konstruktori sees vaikekonstruktori kaudseks kutsumiseks. Pange tähele, et see () peaks olema esimene lause konstruktori sees.

Näide

public Student () {} // Konstruktor 4 public Student (Stringi nimi, String std, int vanus) {// Konstruktor 3 see () // kutsub vaikekonstruktorit. * Kui see pole konstruktori esimene lause, ilmub viga * this.name = nimi this.std = std this.age = age

Märge

  • Rekursiivne konstruktori kutsumine on Java-s sobimatu
  • Kui oleme määranud mõne parameetriga konstruktori, siis kompilaator vaikekonstruktorit ei loo. ja vastupidi, kui me ei määratle ühtegi konstruktorit, loob kompilaator kompileerimise käigus vaikimisi konstruktori (tuntud ka kui arg-konstruktor)
  • Konstruktori kutsumine peab olema Java konstruktori esimene lause

Seega oleme jõudnud selle artikli lõppu, mis käsitleb Java-i konstruktori ülekoormamist. Kui soovite rohkem teada saada, vaadake järgmist autor Edureka, usaldusväärne veebipõhine õppefirma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java-põhimõistete kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.