English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом примере мы узнаем, как вызывать один конструктор из другого в Java.
Чтобы понять этот пример, вам нужно знать следующееJava-программированиеТема:
class Main { int sum; //Первый конструктор Main() { //Вызов второго конструктора this(5, 2); } //Второй конструктор Main(int arg1, int arg2) { //Сложение двух значений this.sum = arg1 + arg2; } void display() { System.out.println("Общая сумма: " + sum); } //Класс main public static void main(String[] args) { // Вызов первого конструктора Main obj = new Main(); //Вызов метода отображения obj.display(); } }
Результат вывода
Общая сумма: 7
В примере выше мы создали класс с именем Main. Здесь вы создали два конструктора в классе Main.
Main() {..} Main(int arg1, int arg2) {...}
В первом конструкторе мы используем ключевое слово this для вызова второго конструктора.
this(5, 2);
Здесь вызов второго конструктора из первого конструктора осуществляется через передачу параметров 5 и 2.
Внимание: Строка вызова другого конструктора в конструкторе должна быть первой строкой этого конструктора. То есть, this(5, 2) должна быть первой строкой Main().
Мы также можем использовать super(), чтобы вызвать конструктор суперкласса из конструктора подкласса.
//Суперкласс class Languages { //Конструктор суперкласса Languages(int version1, int version2) { if (version1 > version2) { System.out.println("Новая версия: " + version1); } else {}} System.out.println("Последняя версия: " + version2); } } } // подкласс class Main extends Languages { // конструктор подкласса Main() { // вызов конструктора суперкласса super(11, 8); } // метод main public static void main(String[] args) { // Вызов первого конструктора Main obj = new Main(); } }
Результат вывода
Последняя версия: 11
В примере выше мы создали суперкласс Languages и подкласс Main. Обратите внимание на следующие строки в конструкторе класса Main:
super(11, 8);
Здесь мы вызываем конструктор суперкласса (Main(int version1, int version2)) из конструктора подкласса (Main()).