Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Перегрузка конструктора в Java:что это такое и примеры программ

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

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

Если для класса не предоставлен определяемый пользователем конструктор, компилятор инициализирует переменные-члены значениями по умолчанию.

В этом уроке вы узнаете-

Правила создания конструктора Java

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

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

Шаг 1) Введите следующую программу-конструктор в редакторе Java.

class Demo{
      int  value1;
      int  value2;
      Demo(){
         value1 = 10;
         value2 = 20;
         System.out.println("Inside Constructor");
     }
 
     public void display(){
        System.out.println("Value1 === "+value1);
        System.out.println("Value2 === "+value2);
    }
 
   public static void main(String args[]){
       Demo d1 = new Demo();
      d1.display();
  }
}

Шаг 2) Сохраните, запустите и скомпилируйте программу-конструктор на Java и посмотрите на результат.

Вывод:

Inside Constructor
Value1 === 10
Value2 === 20

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

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

Примеры допустимых конструкторов для класса Account:

Account(int a);
Account (int a,int b);
Account (String a,int b);

Пример 2 :Чтобы понять перегрузку конструктора в Java

Шаг 1) Введите код в редакторе.

class Demo{
      int  value1;
      int  value2;
      /*Demo(){
       value1 = 10;
       value2 = 20;
       System.out.println("Inside 1st Constructor");
     }*/
     Demo(int a){
      value1 = a;
      System.out.println("Inside 2nd Constructor");
    }
    Demo(int a,int b){
    value1 = a;
    value2 = b;
    System.out.println("Inside 3rd Constructor");
   }
   public void display(){
      System.out.println("Value1 === "+value1);
      System.out.println("Value2 === "+value2);
  }
  public static void main(String args[]){
    Demo d1 = new Demo();
    Demo d2 = new Demo(30);
    Demo d3 = new Demo(30,40);
    d1.display();
    d2.display();
    d3.display();
 }
}

Шаг 2) Сохраните, скомпилируйте и запустите код.

Шаг 3) Ошибка =?. Попробуйте отладить ошибку, прежде чем переходить к следующему шагу перегрузки конструктора Java

Шаг 4) У каждого класса есть конструктор по умолчанию в Java. Перегруженный конструктор Java по умолчанию для демо класса Демо() . Если вы не предоставите этот конструктор, компилятор создаст его для вас и инициализирует переменные значениями по умолчанию. Вы можете переопределить этот конструктор по умолчанию и инициализировать переменные нужными вам значениями, как показано в примере 1.

Но если вы указываете параметризованный конструктор, такой как Demo(int a), и хотите использовать конструктор по умолчанию Java Demo(), вам необходимо указать его.

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

Шаг 5) Раскомментируйте строки № 4-8. Сохраните, скомпилируйте и запустите код.

Связывание конструкторов

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

Пример 3: Чтобы понять цепочку конструкторов

Шаг 1) Скопируйте следующий код в редактор.

class Demo{
   int  value1;
   int  value2;
    Demo(){
      value1 = 1;
      value2 = 2;
      System.out.println("Inside 1st Parent Constructor");
   }
   Demo(int a){
      value1 = a;
      System.out.println("Inside 2nd Parent Constructor");
   }
  public void display(){
     System.out.println("Value1 === "+value1);
     System.out.println("Value2 === "+value2);
  }
  public static void main(String args[]){
     DemoChild d1 = new DemoChild();
     d1.display();
  }
}
class DemoChild extends Demo{
    int value3;
    int value4;
    DemoChild(){
    //super(5);
     value3 = 3;
     value4 = 4;
    System.out.println("Inside the Constructor of Child");
    }
    public void display(){
      System.out.println("Value1 === "+value1);
      System.out.println("Value2 === "+value2);
      System.out.println("Value1 === "+value3);
      System.out.println("Value2 === "+value4);
   }
}

Шаг 2) Запустите код. Благодаря цепочке конструкторов, когда создается объект дочернего класса DemoChild, сначала вызывается конструктор Demo() родительского класса, а затем создается конструктор DemoChild() дочернего.

Ожидаемый результат =

Inside 1st Parent Constructor
Inside the Constructor of Child
Value1 === 1
Value2 === 2
Value1 === 3
Value2 === 4

Шаг 3) Вы можете заметить, что конструктор родительского класса Demo переопределен. Что делать, если вы хотите вызвать переопределенный конструктор Demo(int a) вместо конструктора по умолчанию Demo() при создании вашего дочернего объекта?

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

Синтаксис:-

super();
--or--
super(parameter list);

Пример: Если ваш конструктор похож на Demo(String Name,int a) , вы укажете super(“Java”,5) . Если используется ключевое слово super, оно должно быть первой строкой кода. в конструкторе дочернего класса.

Шаг 4) Раскомментируйте строку #26 и запустите код. Наблюдайте за выводом.

Вывод:

Inside 2nd Parent Constructor
Inside the Constructor of Child
Value1 === 5
Value2 === 0
Value1 === 3
Value2 === 4

java

  1. Перегрузка конструктора C#
  2. Java-программа Hello World
  3. Конструкторы Java
  4. Конструктор перечисления Java
  5. Метод Java String indexOf() с подстрокой и примерами
  6. Метод Java String compareTo():​​как использовать с примерами
  7. Статическая переменная в Java:что такое статический блок и метод [пример]
  8. Java-программа для проверки простого числа
  9. Программа для печати простых чисел от 1 до 100 на Java
  10. Как преобразовать Char в строку в Java (примеры)