In dit gedeelte zullen we leren waarom we een constructor gebruiken in Java En wat is het doel En behoefte van de constructeur . Daarnaast zullen we ook de typen van de constructeur.
Op Java is de bouwer is vergelijkbaar met de methode. De eigenschap van de constructor is dat deze dezelfde naam moet hebben als de klassenaam. Het heeft geen retourtype. We hoeven de constructor niet handmatig aan te roepen. Het wordt automatisch impliciet aangeroepen tijdens de instantiatie.
Met andere woorden, een constructor is een methode die tijdens runtime wordt aangeroepen tijdens het maken van objecten met behulp van de nieuwe operator. De JVM roept het automatisch aan wanneer we een object maken. Als we geen constructor in de klasse definiëren, is de standaardconstructor altijd onzichtbaar aanwezig in de klasse. Er zijn de volgende redenen om constructors te gebruiken:
- We gebruiken constructors om het object te initialiseren met de standaard- of initiële status. De standaardwaarden voor primitieven zijn mogelijk niet wat u zoekt.
- Een andere reden om constructor te gebruiken is dat het informeert over afhankelijkheden. Met andere woorden, met behulp van de constructor kunnen we de gebruiker van die klasse om de vereiste afhankelijkheden vragen.
- We kunnen erachter komen wat er nodig is om deze klasse te gebruiken, gewoon door naar de constructor te kijken.
Kortom, we gebruiken de constructor om initialiseer de instantievariabele van de klasse.
Soorten constructeurs
Er zijn twee soorten constructors in Java:
- Geparametriseerde constructeur
- Standaardconstructeur
Geparametriseerde constructor
Zoals de naam al doet vermoeden, accepteert het argumenten (parameters). De geparametriseerde constructor wordt gebruikt als we de instantievariabelen dynamisch willen initialiseren met de opgegeven waarden op het moment van instantiatie.
Voorbeeld
public class Demo { int i; //parameterized constructor public demo(int i) { this.i = i; } }
Standaardconstructeur
De standaardconstructor accepteert geen enkele parameter. Het wordt gebruikt als we de instantievariabelen met bepaalde waarden willen initialiseren. Elke Java-klasse heeft onzichtbaar een standaardconstructor. We hoeven het dus niet afzonderlijk te definiëren. Houd er rekening mee dat de standaardconstructor uit de klasse wordt verwijderd wanneer we een geparametriseerde constructor maken.
Voorbeeld
public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } }
Opmerking: als we geen constructor aan een Java-programma leveren, schrijft de Java-compiler namens de programmeur de standaardconstructor en compileert het programma. Het initialiseert de instantievariabelen met de standaardwaarden. Bijvoorbeeld 0 voor geheel getal, 0,0 voor float en null voor String.
Laten we een programma maken en de standaard- en geparametriseerde constructor gebruiken.
In de klasse Employee hebben we twee constructors gemaakt, één is de standaardconstructor en de andere is de geparametriseerde constructor. De klasse Werknemer heeft twee privévariabelen, namelijk naam en leeftijd. In de hoofdmethode hebben we de klasse geïnstantieerd en beide constructors gebruikt.
Werknemer.java
import java.util.Scanner; public class Employee { private String name; private int age; //parameterized constructor public Employee(String name, int age) { this.name =name; this.age = age; } //Default constructor public Employee() { this.name = 'William'; this.age = 28; } //method for printing the values public void show() { System.out.println('Name of the employee: '+this.name); System.out.println('Age of the employee: '+this.age); } //main method public static void main(String args[]) { Employee e=new Employee(); //Reading values from user Scanner sc = new Scanner(System.in); System.out.println('Enter the name of the employee: '); String name = sc.nextLine(); System.out.println('Enter the age of the employee: '); int age = sc.nextInt(); System.out.println(' '); //Calling the parameterized constructor System.out.println('Show() method for the parameterized constructor: '); new Employee(name, age).show(); //Calling the default constructor System.out.println('Show() method for the default constructor: '); new Employee().show(); } }
Uitgang:
Enter the name of the employee: David Enter the age of the employee: 27 Show() method for the parameterized constructor: Name of the employee: David Age of the employee: 27 Show() method for the default constructor: Name of the employee: William Age of the employee: 28