Конструктор используется для инициализации объектов в Java. Он вызывается при создании объекта класса с использованием ключевого слова new ()
и может использоваться для установки начальных значений для членов данных того же класса.
Ниже приведен пример использования конструктора:
класс MyClass {int x; //определение конструктора public MyClass (int y) {x = y; //установка значения x равным переданному параметру} public static void main (String [] args) {MyClass obj = new MyClass (24); //использование конструктора для инициализации значений System.out.println (obj.x); //печать x}}
Правила написания Java конструктор
- Имя конструктора должно иметь то же имя, что и имя класса.
- Конструктор не имеет возвращаемого типа и возвращает только текущий экземпляр класса.
- В объявлении конструктора можно использовать модификаторы доступа для управления доступом к нему других классов.
- Пользователь может иметь столько параметров, сколько хочет.
class Shapes {int сторон; String shapeName; //определение конструктора public Shapes (int num, String name) {//определение значений в конструкторе side = num; shapeName = имя; } public static void main (String [] args) {Shapes shape1 = new Shapes (4, "Квадрат"); //вызов конструктора и инициализация значений System.out.println ("A" + shape1.shapeName + "has" + shape1.sides + "side."); Фигуры shape2 = новые Фигуры (5, «Пентагон»); //вызов конструктора и инициализация значений System.out.println ("A" + shape2.shapeName + "has" + shape2.sides + "side."); }}
Для простоты популярной практикой является присвойте параметру то же имя, что и члену, которому он назначается. В таком случае ключевое слово this
можно использовать для различения параметра и члена:
class Shapes {int сторон; String shapeName; //определение конструктора public Shapes (int side, String shapeName) {this.sides = side; //«this» относится к самому классу this.shapeName = shapeName; }}
Конструкторы по умолчанию
Все классы имеют конструкторы по умолчанию. Если пользователь не создает конструктор класса, Java создает его. Значения элементов данных будут установлены на 0
или null
в этом случае, поскольку пользователь не может установить начальные значения для элементов данных объект класса.
См. приведенный ниже код, в котором используются конструкторы по умолчанию:
class Shapes {int сторон; String shapeName; //определение конструктора public Shapes (int num, String name) {//значения не инициализированы} public static void main (String [] args) {//вызывается конструктор по умолчанию, поэтому значения устанавливаются на 0 и null Shapes shape1 = новые фигуры (4, «Квадрат»); System.out.println ("A" + shape1.shapeName + "имеет" + shape1.sides + "side."); //вызывается конструктор по умолчанию, поэтому значения установлены на 0 и ноль Shapes shape2 = new Shapes (5, "Pentagon"); //конструктор по умолчанию называется System.out.println ("A" + shape2.shapeName + "has" + shape2.sides + "side."); }}