„Java“ yra viena iš daugelio programavimo kalbų . Tai reiškia, kad programuodami „Java“ turime visas galingas duomenų abstrakcijos, polimorfizmo, paveldėjimo ir kt. Ypatybes. Visų OOP funkcijų esmė yra klasių ir objektų įgyvendinimas bei jų tarpusavio sąveika. Šiame straipsnyje mes ypač apžvelgsime, kaip inicializuoti objektą naudojant parametrų konstruktorius . Atkreipkite dėmesį, kad pagrindinis supratimas apie reikalinga prieš tęsiant statybininkų darbą.
raktų klaida: „a“
- Kas yra konstruktorius?
- Numatytasis konstruktorius ir parametruojamas konstruktorius
- Objektų perdavimas kaip argumentai
- Skambinimas numatytuoju konstruktoriumi iš parametruojamo konstruktoriaus
- Konstruktoriaus perkrova
Kas yra konstruktorius?
Konstruktorius iš esmės yra metodas, kuris automatiškai iškviečiamas, kai sukuriamas tos klasės objektas (egzempliorius). Jis naudojamas objekto duomenų nariams inicijuoti.
viešoji klasė „Edureka“ {Edureka () {System.out.println ('konstruktorius pagamintas')}}
Kai kurios konstruktoriaus savybės:
- Jis turi tą patį pavadinimą, kaip ir klasės pavadinimas
- Jis neturi grąžinimo tipo
Konstruktoriaus tipai
- Numatytasis konstruktorius
- Parametruotas konstruktorius
Numatytasis konstruktorius ir parametruojamas konstruktorius
Numatytasis konstruktorius - Konstruktorius, kuris nepriima jokio parametro, vadinamas numatytuoju konstruktoriumi. Klasės apibrėžime nebūtina turėti konstruktoriaus bloko. Jei aiškiai nerašote konstruktoriaus, kompiliatorius automatiškai jį įterpia jums.
Numatytojo „Java“ konstruktoriaus pavyzdys:
viešoji klasė „Edureka“ {Edureka () {System.out.println ('Aš esu konstruktorius')} public static void main (String args []) {Edureka obj = new Edureka ()}}
Išvestis: Esu konstruktorius
Parametruotas konstruktorius - Konstruktorius vadinamas Parameterized Constructor, kai jis priima konkretų parametrų skaičių. Inicijuoti klasės duomenis su skirtingomis reikšmėmis.
Parametruotą konstruktorių iliustruojantis pavyzdys:
public class Edureka {String studentName int studentAge // konstruktorius Edureka (String name, int age) {studentName = name studentAge = age} void display () {System.out.println (studentName + '' + studentAge)} public static void main ( Styginiai argumentai []) {Edureka myObj = new Edureka ('Manan', 19) myObj.display ()}}
Išvestis: Mananas-19
Ankstesniame pavyzdyje mes perduodame objektui eilutę ir sveiką skaičių. Tada konstruktorius inicializuoja studento vardą ir studento amžių, naudodamas perduotas reikšmes. Tada ekrano metodas suteikia norimą išvestį.
Turint parametruojamą konstruktorių klasei, reikia pateikti pradines reikšmes kaip argumentus, kitaip kompiliatorius praneša apie klaidą.
Objektų perdavimas kaip argumentai
Taip pat galime pateikti argumentus kurdami kitus klasės egzempliorius. Tokiu būdu parametrizuoti konstruktoriai patenkina poreikį nukopijuoti vieno objekto vertes į kitą.
Pavyzdys, iliustruojantis perduodamus objektus kaip argumentus:
viešoji klasė „Edureka“ {Eilutė studento vardas Edureka (eilutės pavadinimas) {studento vardas = vardas} Edureka („Edureka myObj“) {this.studentName = myObj.studentName} negaliojantis ekranas () {System.out.println ('Studentas:' + studento vardas)} public static void main (String args []) {Edureka obj1 = new Edureka ('Manan') / * objekto perdavimas kaip konstruktoriaus argumentas * tai sukvies kopijos konstruktorių * / Edureka obj2 = nauja Edureka (obj1) sistema. out.println ('Printing obj1 -') obj1.display () System.out.println ('Printing obj2 -') obj2.display ()}}
Išvestis:
1 objekto spausdinimas -Mananas2 objekto spausdinimas -Mananas
Ankstesniame pavyzdyje mes inicijuojame obj1 naudodami eilutę. Tada mes pateiksime obj1 kaip argumentą kurdami obj2. Galiausiai, kai atspausdindami abu objekto studentName kintamuosius naudodami rodymo funkciją, gausime „Manan“.
Skambinimas numatytuoju konstruktoriumi iš parametruojamo „Java“ konstruktoriaus
Kartais reikia paskambinti numatytuoju konstruktoriumi iš kito tos pačios klasės konstruktoriaus. šis raktinis žodis vykdo šį tikslą.
Pavyzdys, iliustruojantis iškvietimą numatytam konstruktoriui iš parametrizuoto konstruktoriaus:
viešoji klasė „Edureka“ {String studentName int studentAge String member Edureka () {member = 'YES'} Edureka (String name, int age) {this () / * naudojamas paskambinti numatytajam konstruktoriui * iš parametruojamo konstruktoriaus * / studentName = vardas studentAge = age} negaliojantis ekranas () {System.out.println (studentoPavadinimas + '-' + studentAge + '-' + 'Narys' + narys)} public static void main (String args []) {Edureka obj = new Edureka („Manan“, 21 m.) Obj. Ekranas ()}}
Išvestis: Mananas - 21 - narys TAIP
Ankstesniame pavyzdyje, kai naudojamas parametruojamas konstruktorius, jis pirmiausia iškviečia numatytąjį konstruktorių šio () raktinio žodžio pagalba. Numatytasis konstruktorius inicijuoja „member“ kintamąjį į „YES“ ir tada vykdo parametruojamą konstruktorių.
Konstruktoriaus perkrova
Konstruktorius palaiko metodo perkrovą, kaip ir bet kurią kitą klasę. Remiantis skirtingų tipų ar argumentų skaičiumi, bus iškviesti skirtingi konstruktoriai.
Konstruktoriaus perkrovos pavyzdys:
public class Stačiakampis {int ilgis int plotis Stygos spalva // konstruktorius 1 Stačiakampis (int l, int b) {ilgis = l plotis = b spalva = 'Žalia'} // konstruktorius 2 Stačiakampis (int l, int b, String c) {length = l width = b color = c} void display () {System.out.println ('Length-' + length + 'Bread-' + width + 'Color' + color)} public static void main (String args [ ]) {Stačiakampis obj1 = naujas stačiakampis (2,4) stačiakampis obj2 = naujas stačiakampis (2,4, 'žalias') obj1.display () obj2.display ()}}
Išvestis: Ilgis - 2 plotis - 4 spalva - žaliaIlgis - 2 plotis - 4 spalva - raudona
Dabar, kai suprantate, kokie yra konstruktoriai ir kaip su jais dirbti, jūs esate dar vienas žingsnis arčiau savo kelionės mokytis „Java“. Tokios sąvokos kaip konstruktoriai yra paprastos, tačiau yra labai svarbios, nes jos apima klases ir objektus. Norėdami gauti išsamesnių temų ir įdomių skaitymų, užsirašykite į „Edureka“ . Nesivaržykite atsiskaityti pradėti mokytis.
Turite mums klausimą? paminėkite tai šio straipsnio „Parameterized Constructor in Java“ komentarų skyriuje ir mes kuo greičiau susisieksime su jumis.