Лабораторная работа №9
Дисциплина: Объектно-ориентированное программирование (ООП)
Тема: Constructors. Method Overloading. Java Properties
Цель работы
Изучить понятие конструктора в языке Java;
Научиться создавать несколько конструкторов в одном классе;
Освоить перегрузку методов (method overloading);
Познакомиться с использованием свойств (properties) в классах.
Краткая теория
Конструкторы (Constructors)
В языке Java конструктор — это специальный метод класса, который вызывается
автоматически при создании объекта.
Основные особенности конструктора:
• имя конструктора совпадает с именем класса
• конструктор не имеет типа возвращаемого значения
• используется для инициализации полей объекта
Конструкторы позволяют сразу задать начальные значения переменных класса.
Пример создания объекта:
Student s = new Student();
В этот момент автоматически вызывается конструктор класса.
Конструктор по умолчанию
Если программист не создал конструктор, компилятор автоматически добавляет
конструктор по умолчанию.
Пример:
public class Student {
String name;
При создании объекта будет использован пустой конструктор.
Параметризованный конструктор
Конструктор может принимать параметры для инициализации объекта.
Student s = new Student("Ali", 20);
Такой конструктор позволяет создавать объекты с разными значениями.
Перегрузка методов (Method Overloading)
Перегрузка методов — это создание нескольких методов с одинаковым именем, но с
разными параметрами.
Условия перегрузки:
• одинаковое имя метода
• разные параметры (количество или тип)
Перегрузка используется для удобства работы с методами.
Свойства класса (Properties)
Свойства класса — это переменные (поля), которые описывают характеристики объекта.
Пример:
class Student
name
age
group
Эти поля являются свойствами объекта.
Свойства хранят состояние объекта и используются в методах класса.
Примеры
Пример 1. Конструктор без параметров
public class Student {
String name;
Student() {
name = "Unknown";
}
void showName() {
[Link]("Name: " + name);
}
public static void main(String[] args) {
Student s = new Student();
[Link]();
}
}
Объяснение:
Конструктор автоматически присваивает значение переменной name.
Пример 2. Конструктор с параметрами
public class Student {
String name;
int age;
Student(String n, int a) {
name = n;
age = a;
}
void showInfo() {
[Link](name + " " + age);
}
public static void main(String[] args) {
Student s = new Student("Ali", 20);
[Link]();
}
Объяснение:
Конструктор получает значения через параметры и сохраняет их в полях класса.
Пример 3. Перегрузка методов
public class Calculator {
int add(int a, int b) {
return a + b;
}
int add(int a, int b, int c) {
return a + b + c;
}
public static void main(String[] args) {
Calculator c = new Calculator();
[Link]([Link](5, 3));
[Link]([Link](5, 3, 2));
Объяснение:
Метод add имеет одинаковое имя, но разные параметры.
Пример 4. Перегрузка конструкторов
public class Book {
String title;
int year;
Book() {
title = "Unknown";
year = 0;
}
Book(String t, int y) {
title = t;
year = y;
}
void showInfo() {
[Link](title + " " + year);
}
public static void main(String[] args) {
Book b1 = new Book();
Book b2 = new Book("Java Programming", 2023);
[Link]();
[Link]();
Объяснение:
Класс имеет два конструктора: без параметров и с параметрами.
Задания к лабораторной работе №9
Блок 1. Конструкторы
Задание 1
Создайте класс Student с полями name и age.
Создайте конструктор без параметров, который присваивает значения по умолчанию.
Задание 2
Создайте класс Car с полями brand и year.
Создайте конструктор с параметрами для инициализации этих полей.
Задание 3
Создайте класс Book с полями title и author.
Создайте конструктор, который задаёт значения этим полям.
Блок 2. Перегрузка конструкторов
Задание 4
Создайте класс Employee.
Создайте два конструктора:
• без параметров
• с параметрами (name, salary)
Задание 5
Создайте класс Phone.
Создайте два конструктора:
• один принимает название телефона
• второй принимает название и цену.
Блок 3. Перегрузка методов
Задание 6
Создайте класс Calculator.
Создайте два метода add():
• сложение двух чисел
• сложение трёх чисел
Задание 7
Создайте класс Printer.
Создайте два метода print():
• вывод одного текста
• вывод текста и числа.
Блок 4. Свойства класса
Задание 8
Создайте класс Person с полями:
name
age
city
Создайте метод showInfo(), который выводит значения полей.
Задание 9
Создайте класс Product с полями:
name
price
Создайте конструктор для инициализации этих полей.
Итоговое задание
Задание 10
Создайте класс UniversityStudent со свойствами:
name
group
age
Реализуйте:
• конструктор без параметров
• конструктор с параметрами
• метод showStudent() для вывода информации о студенте.