#17 – Вложенные и анонимные классы

#17 – Вложенные и анонимные классы

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

Видеоурок

Вложенный класс

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


К примеру, мы разрабатываем класс «Автомобиль». В классе можно прописать множество методов и полей, но описать поведение двигателя или отдельных частей машины бывает куда проще за счёт еще одного дополнительного класса. 


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


Создав вложенный класс вы можете прописать в нём дополнительные поля, методы и конструкторы и далее ссылаясь на главный класс вы можете дополнительно ссылаться на класс наследник. 


Пример вложенного класса:

class Auto {
 String model;

	class Engine {
		private boolean working = false;

		public void work () {
			working = true;
			System.out.print("Двигатель запущен!");
		}
	}

	Engine en = new Engine();
}

public class Main {

	public static void main(String[] args) {
		Auto bmw = new Auto();
		bmw.en.work();
	}
}

Подобный принцип используется во многих классах Java. К пример, если вспомнить класс «System», то в нём также есть вложенный класс и доступ к нему мы получаем за счёт объекта «out»:

// System - основной класс
// out - объект на основе вложенного класса
// print - метод, что находиться внутри вложенного класса
System.out.print("");


Анонимные классы

Анонимные классы - это классы, что не имеют имени и их создание происходит в момент инициализации объекта. 


Такие классы много где используются в Java и с ними вы ещё часто будете сталкиваться. 


Рассмотрим небольшой пример. Предположим что у нас есть интерфейс, который необходимо реализовать. Для реализации можно создать отдельный класс, в нём реализовать интерфейс, далее создать объект на основе класса и через объект ссылаться на методы классы.


Звучит логично, но не оправдано с точки зрения количества действий. Куда проще создать объект и для него сразу выполнить создание анонимного класса.


Пример создания анонимного класса:

Auto car = new Auto() {
	void flyingMoto () {
		System.out.print ("Летающий мотоцикл");
	}
};

Материалы для курса

Чтобы скачивать материалы к видеокурсам необходимо оформить подписку на сайт

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Изучение стека MEAN: MongoDB, Express, Angular и Node JS
10 уроков
Разработка сайта на Java Spring Boot
7 уроков
Изучение библиотек jQuery
24 урока
Уроки React Native для начинающих / Разработка приложения с нуля
11 уроков
Практика React JS / Разработка магазина (eCommerce)
9 уроков
Уроки Vue.js для начинающих
10 уроков
Комментарии
Добавить комментарий

Пока комментариев нет