параметризованный конструктор в Java | Примеры конструктора Java

Java — один из многих языков программирования, использующих объектно-ориентированный подход. Это означает, что при программировании на Java у нас есть все мощные функции абстракции данных, полиморфизма, наследования и т. д. Ядром всех функций ООП является реализация классов и объектов и их взаимодействие друг с другом. В этой статье мы особенно рассмотрим, как инициализировать объект с помощью параметризованных конструкторов в Java.

Что такое конструктор?

Конструктор — это метод, который автоматически вызывается при создании объекта (экземпляра) этого класса. Он используется для инициализации элементов данных объекта.

public class Edureka{
Edureka(){ System.out.println("constructor is made");}
}

Некоторые особенности конструктора включают в себя:

  1. Он имеет то же имя, что и имя класса.
  2. У него нет возвращаемого типа

Типы конструкторов

  1. Конструктор по умолчанию
  2. Параметризованный конструктор

2019-07-02-18_03_19-Window.png

Конструктор по умолчанию против параметризованного конструктора

Конструктор по умолчанию – Конструктор, который не принимает никаких параметров, называется конструктором по умолчанию. Нет необходимости иметь блок конструктора в вашем определении класса. Если вы не напишете конструктор явно, компилятор автоматически вставит его за вас.

Пример, иллюстрирующий конструктор по умолчанию в Java:

public class Edureka{
Edureka()
{ System.out.println("I am a constructor");}
public static void main(String args[]){
Edureka obj = new Edureka();
}
}
Output: I am a 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();
}
}
Output: Manan-19

В приведенном выше примере мы передаем строку и целое число объекту. Затем конструктор инициализирует studentName и studentAge, используя переданные значения. Затем метод отображения дает желаемый результат.

В параметризованном конструкторе для класса необходимо указать начальные значения в качестве аргументов, иначе компилятор сообщит об ошибке.

2019-07-03-11_53_31-Window.png

Передача объектов в качестве аргументов

Мы также можем передавать аргументы при создании других экземпляров класса. Таким образом, параметризованные конструкторы удовлетворяют потребность копировать значения одного объекта в другой.

Пример, иллюстрирующий передачу объектов в качестве аргументов:

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");
/* passing the object as an argument for the constructor 
* this will invoke the copy constructor
*/
Edureka obj2 = new Edureka(obj1);
System.out.println("Printing obj1 - ");
obj1.display();
System.out.println("Printing obj2 - ");
obj2.display();
}
}
Output:
Printing object 1 - MananPrinting object 2 - Manan

В приведенном выше примере мы инициализируем obj1 с помощью строки. Затем мы передаем obj1 в качестве аргумента при создании obj2. Наконец, когда мы печатаем переменную studentName обоих объектов с помощью функции отображения, мы получаем «Manan».

Вызов конструктора по умолчанию из параметризованного конструктора в Java

Иногда возникает необходимость вызвать конструктор по умолчанию из другого конструктора того же класса. это ключевое слово выполняет эту цель.

Пример, иллюстрирующий вызов конструктора по умолчанию из параметризованного конструктора:

public class Edureka{
String studentName;
int studentAge;
String member;
Edureka(){
member = "YES";
}
Edureka(String name , int age){
this();
/* this is used for calling the default constructor
*from parameterized constructor
*/
studentName = name;
studentAge = age;
}
void display(){
System.out.println(studentName + " -" + studentAge+ "-"+ "Member" + member);
}
public static void main(String args[])
{
Edureka obj = new Edureka("Manan" , 21);
obj.display();
}
}

Выход: Манан – 21 – ДА Участник

В приведенном выше примере при вызове параметризованного конструктора сначала вызывается конструктор по умолчанию с помощью ключевого слова this(). Конструктор по умолчанию инициализирует переменную «member» значением «YES», а затем продолжает выполнение параметризованного конструктора.

Перегрузка конструктора

Конструктор поддерживает перегрузку методов, как и любой другой класс. На основе разных типов или количества аргументов будут вызываться разные конструкторы.

Пример, иллюстрирующий перегрузку конструктора:

public class Rectangle{
int length;
int breadth;
String color;
//constructor 1
Rectangle( int l , int b){
length = l;
breadth = b;
color = "Green";
}
//constructor 2
Rectangle(int l, int b, String c){
length = l;
breadth = b;
color = c;
}
void display(){
System.out.println("Length-" + length + "Breadth-" + breadth+ "Color" + color);
}
public static void main(String args[]){
Rectangle obj1 = new Rectangle(2,4);
Rectangle obj2 = new Rectangle(2,4,"Green");
obj1.display();
obj2.display();
}
}
Output:
Length - 2 Breadth - 4 Color - GreenLength - 2 Breadth - 4 Color - Red

Есть к нам вопрос? пожалуйста, укажите это в разделе комментариев к этой статье «Параметризованный конструктор в Java», и мы свяжемся с вами как можно скорее.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *