Java är ett av de många programmeringsspråken som följer . Det betyder att när vi programmerar i Java har vi alla de kraftfulla funktionerna i Data Abstraction, Polymorphism, Arv etc. Kärnan i alla OOP-funktioner är implementeringen av Classes and Objects och deras interaktion med varandra. I den här artikeln kommer vi särskilt att titta på hur man initierar ett objekt med hjälp av parametrerade konstruktörer i . Observera att en grundläggande förståelse för krävs innan du fortsätter med konstruktörer.
användning av charat i java
- Vad är en konstruktör?
- Standardkonstruktör vs parametrerad konstruktör
- Att skicka objekt som argument
- Ringa standardkonstruktör från en parametrerad konstruktör
- Konstruktör överbelastning
Vad är en konstruktör?
En konstruktör är i grunden en metod som automatiskt anropas när ett objekt (instans) skapas av den klassen. Den används för att initialisera ett objekts datamedlemmar.
offentlig klass Edureka {Edureka () {System.out.println ('konstruktören är gjord')}}
Några funktioner hos konstruktören inkluderar:
- Det har samma namn som klassnamnet
- Den har ingen returtyp
Typer av konstruktör
- Standardkonstruktör
- Parameteriserad konstruktör
Standardkonstruktör vs parametrerad konstruktör
Standardkonstruktör - En konstruktör som inte accepterar någon parameter kallas standardkonstruktör. Det är inte nödvändigt att ha ett konstruktionsblock i din klassdefinition. Om du inte uttryckligen skriver en konstruktör infogar kompilatorn automatiskt en åt dig.
Exempel på standardkonstruktör i Java:
public class Edureka {Edureka () {System.out.println ('I am a constructor')} public static void main (String args []) {Edureka obj = new Edureka ()}}
Produktion: Jag är en konstruktör
Parameteriserad konstruktör - En konstruktör kallas Parameterized Constructor när den accepterar ett visst antal parametrar. Att initialisera datamedlemmar i en klass med distinkta värden.
Exempel som illustrerar Parameterized Constructor:
public class Edureka {String studentName int studentAge // constructor Edureka (String name, int age) {studentName = name studentAge = age} void display () {System.out.println (studentName + '' + studentAge)} public static void main ( String args []) {Edureka myObj = new Edureka ('Manan', 19) myObj.display ()}}
Produktion: Manan-19
I exemplet ovan skickar vi en sträng och ett heltal till objektet. Konstruktören initialiserar sedan studentName och studentAge med de godkända värdena. Displaymetoden ger sedan önskad effekt.
Med en parametrerad konstruktör för en klass måste man ange initialvärden som argument, annars rapporterar kompilatorn ett fel.
Att skicka objekt som argument
Vi kan också skicka argument när vi skapar andra instanser av en klass. På detta sätt uppfyller parametrerade konstruktörer behovet av att kopiera ett objekts värden till ett annat.
Exempel som illustrerar passera objekt som argument:
public class Edureka {String studentName Edureka (String name) {studentName = name} Edureka (Edureka myObj) {this.studentName = myObj.studentName} void display () {System.out.println ('Student:' + studentName)} public static void main (String args []) {Edureka obj1 = new Edureka ('Manan') / * skickar objektet som ett argument för konstruktorn * detta kommer att åberopa kopikonstruktören * / Edureka obj2 = new Edureka (obj1) System. out.println ('Printing obj1 -') obj1.display () System.out.println ('Printing obj2 -') obj2.display ()}}
Produktion:
Utskriftsobjekt 1 -MananUtskriftsobjekt 2 -Manan
I exemplet ovan initialiserar vi obj1 med en sträng. Vi skickar sedan obj1 som ett argument medan vi skapar obj2. Slutligen, när vi skriver ut båda objektets studentnamnvariabler med hjälp av visningsfunktionen får vi 'Manan'.
Ringa standardkonstruktör från en parametrerad konstruktör i Java
Ibland finns det ett behov av att anropa standardkonstruktören från en annan konstruktör i samma klass. det här nyckelordet uppfyller detta syfte.
Exempel som illustrerar anrop till en standardkonstruktör från en parametrerad konstruktor:
public class Edureka {String studentName int studentAge String member Edureka () {member = 'YES'} Edureka (String name, int age) {this () / * detta används för att anropa standardkonstruktören * från parametrerad konstruktör * / studentName = namn studentAge = age} ogiltig display () {System.out.println (studentName + '-' + studentAge + '-' + 'Member' + medlem)} public static ogiltig main (String args []) {Edureka obj = new Edureka ('Manan', 21) obj.display ()}}
Produktion: Manan - 21 - Medlem JA
I ovanstående exempel, när parametriserad konstruktör anropas, anropar den först standardkonstruktören med hjälp av detta () nyckelord. Standardkonstruktören initialiserar 'medlem' -variabeln till 'JA' och fortsätter sedan att utföra parametrerad konstruktor.
Konstruktör överbelastning
Constructor stöder överbelastning av metoder precis som alla andra klasser. Baserat på olika typer eller antal argument kommer olika konstruktörer att anropas.
Exempel på konstruktionsöverbelastning:
offentlig klass Rektangel {int längd int bredd Strängfärg // konstruktör 1 Rektangel (int l, int b) {längd = l bredd = b färg = 'grön'} // konstruktör 2 rektangel (int l, int b, sträng c) {längd = l bredd = b färg = c} tomrumsvisning () {System.out.println ('Längd-' + längd + 'Bredd-' + bredd + 'Färg' + färg)} offentlig statisk tomrum huvud (String args [ ]) {Rectangle obj1 = new Rectangle (2,4) Rectangle obj2 = new Rectangle (2,4, 'Green') obj1.display () obj2.display ()}}
Produktion: Längd - 2 bredd - 4 färger - grönLängd - 2 bredd - 4 färger - röd
Nu när du har grepp om vad konstruktörer är och hur du arbetar med dem, är du ett steg närmare på din resa för att lära dig Java. Begrepp som konstruktörer är enkla men är extremt viktiga eftersom de involverar klasser och objekt. För mer fördjupade ämnen och roliga läsningar, anmäl dig till Edurekas . Kolla gärna vår för att starta ditt lärande.
Har du en fråga till oss? vänligen nämna detta i kommentarsektionen i den här ”Parameterized Constructor in Java” -artikeln så kommer vi tillbaka till dig så snart som möjligt.