8.03M
Категория: ПрограммированиеПрограммирование

Внутренние и вложенные классы. Наследование. Абстрактные классы

1.

Внутренние и вложенные
классы
Наследование
Абстрактные классы
Сара Сериковна

2.

Внутренние и вложенные классы
https://metanit.com/java/tutorial/3.12.php

3.

Что такое внутренние классы и где
они используются
Определение:
• Внутренние классы (Inner
Classes) в Java — это классы,
объявленные внутри других
классов. Они позволяют
логически группировать классы,
которые используются только в
одном месте, увеличивая
инкапсуляцию.

4.

Что такое статические вложенные классы
и их отличия от внутренних классов
Определение:
• Статические вложенные классы (Static Nested Classes) в Java
— это вложенные классы, объявленные внутри другого класса с
модификатором static.
Отличия от внутренних классов:
• Независимость от внешнего класса: Статические вложенные
классы не требуют ссылки на объект внешнего класса для своего
создания.
• Доступ к членам внешнего класса: В отличие от внутренних
классов, статические вложенные классы не имеют доступа к
нестатическим членам внешнего класса.

5.

Наследование в Java
https://metanit.com/java/tutorial/3.5.php

6.

Определение
Ключевые аспекты
Ключевые аспекты
Наследование в Java — это
механизм, при котором один класс
(подкласс) наследует свойства и
методы другого класса
(суперкласса). Он позволяет
повторно использовать
существующий код, улучшая
модульность и организацию кода.
extends Ключевое слово:
Для наследования от
суперкласса в Java
используется ключевое
слово extends.
Повторное использование
кода: Подкласс наследует
все открытые (public) и
защищенные (protected)
члены суперкласса.

7.

Абстрактные классы
https://metanit.com/java/tutorial/3.5.php

8.

Абстрактные классы
Определение:
• Абстрактные классы в Java — это классы,
которые не могут быть инстанцированы
напрямую. Это означает, что нельзя создать
объект абстрактного класса. Они предназначены
для того, чтобы служить базовыми классами для
других классов.

9.

Задание - 1 (50 балл) (общая задания)
Задача 1: Внутренний класс и обращение к его методам
Задача: Создайте внешний класс Car с внутренним классом Engine. Внутренний класс должен
содержать метод start(), который выводит сообщение о запуске двигателя. Во внешнем классе
реализуйте метод startCar(), который создаёт экземпляр внутреннего класса и вызывает его метод
start().
Задача 2: Статический вложенный класс и конструктор
Задача: В классе House создайте статический вложенный класс Room. У Room должны быть свойства
width и height, а также конструктор, принимающий эти параметры. В основном классе создайте метод,
который создает объект Room и выводит его характеристики.
Задача 3: Наследование и переопределение методов
Задача: Создайте класс Animal с методом makeSound(), выводящим базовый звук. Создайте классы
Dog и Cat, наследующиеся от Animal, и переопределите в них метод makeSound() для вывода
специфических звуков (например, "Woof" для Dog и "Meow" для Cat).
Задача 4: Использование ключевого слова super
Задача: Расширьте предыдущую задачу, добавив конструкторы в Animal, Dog и Cat, где Animal
принимает имя животного. Используйте super в конструкторах Dog и Cat для передачи имени в
конструктор Animal.
Задача 5: Абстрактные классы и методы
Задача: Создайте абстрактный класс Shape с абстрактным методом calculateArea(). Реализуйте
классы Circle и Rectangle, наследующие Shape. В этих классах реализуйте метод calculateArea(),
который вычисляет и возвращает площадь фигуры. Для Circle площадь = π * radius², для Rectangle
площадь = width * height.

10.

Задание - 2(50 балл)(вариант)
Азатов Радмир (1-вариант)
Аканиязов Ильхам (2-вариант)
Апкаликов Алексей (3-вариант)
Ашуров Мухаммад-Рассул (4-вариант)
Әділбеков Әлішер (5-вариант)
Галаев Миккаил (6-вариант)
Ерлан Нұрали (7-вариант)
Жумабеков Адлет (8-вариант)
Земцов Даниил (9-вариант)
Зинидинов Юрий (10-вариант)
Ибрагимов Александр (11-вариант)
Кеңес Саяналтай (12-вариант)
Кобжасар Данияр (13-вариант)
Куанышбек Аян (14-вариант)
Қашқынбай Ернұр (15-вариант)
Қуанышбай Нурболат (16-вариант)
Литовченко Тимур (17-вариант)
Морчик Давид (18-вариант)
Нарумов Ерасыл (19-вариант)
Орман Алан (20-вариант)
Тотолин Илья (21-вариант)
Хашимов Ислам (22-вариант)
Якупов Амир (23-вариант)

11.

Заключение
Абстрактные классы играют важную роль в объектноориентированном программировании в Java,
обеспечивая общий шаблон для ряда связанных классов и
принуждая подклассы реализовывать специфические для
них методы.

12.

Thank You
For Your Time!
English     Русский Правила