Lär dig mer om parametrerade konstruktörer i Java med exempel



Den här artikeln beskriver hur vi kan använda parametrerad konstruktör i java med olika exempel och skillnad mellan standard- och parametrerad konstruktör.

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?

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:

  1. Det har samma namn som klassnamnet
  2. Den har ingen returtyp

Typer av konstruktör

  1. Standardkonstruktör
  2. Parameteriserad konstruktör

typer av konstruktörsparametrerade konstruktörer i java-edureka



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.