Тимур Машнин - Объектно-ориентированное программирование на Java. Платформа Java SE

Здесь есть возможность читать онлайн «Тимур Машнин - Объектно-ориентированное программирование на Java. Платформа Java SE» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. ISBN: , Жанр: Прочая околокомпьтерная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Объектно-ориентированное программирование на Java. Платформа Java SE: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Объектно-ориентированное программирование на Java. Платформа Java SE»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Эта книга предназначена для тех, кто хочет научиться программировать на языке Java.С этой книгой вы обучитесь объектно-ориентированному программированию на платформе Java SE и научитесь применять принципы ООП на практике.Эта книга охватывает важные аспекты программирования на языке Java, начиная с основ и заканчивая объектно-ориентированным подходом и командной разработкой кода.

Объектно-ориентированное программирование на Java. Платформа Java SE — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Объектно-ориентированное программирование на Java. Платформа Java SE», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Таким образом, мы знаем, что один класс может расширить другой класс.

Например, если класс B расширяет класс A, это означает, что он наследует его поля и методы.

И это можно сделать многократно.

То есть класс B может быть расширен, например, классом C.

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

В нашем определении класса vehicle и класса car, где класс car расширяет класс vehicle, мы определяем конструктор для класса vehicle, который инициализирует приватное поле color.

И с этим не никаких проблем Но как мы можем определить тело конструктора car - фото 207

И с этим не никаких проблем.

Но как мы можем определить тело конструктора car, с учетом двух аргументов, целого числа для количества пассажиров и строки для цвета?

Класс car наследует все методы от класса vehicle – перемещение вперед и назад, и все его поля, в данном случае, только color.

Но поле color является приватным полем и не может быть доступно извне класса vehicle.

Это относится также и к подклассам, и это очень важно.

Поэтому неправильно присваивать значение «с» полю color в классе car.

Мы не можем получить к этому полю доступ, потому что оно является приватным.

Мы можем использовать только публичный метод, например, конструктор.

Теперь, если мы хотим вызвать конструктор суперкласса, мы используем ключевое слово super.

Здесь вы это видите super c вызов конструктора vehicle c Таким образом - фото 208

Здесь вы это видите.

super (c) – вызов конструктора vehicle (c).

Таким образом, мы сможем инициализировать поле color из подкласса.

Вызов конструктора суперкласса должен быть перед любым другим кодом в теле конструктора подкласса.

Например, сначала установить количество пассажиров, а затем вызвать супер будет неправильным.

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

Здесь мы видим другой пример У нас есть класс A с подклассом B а класс B с - фото 209

Здесь мы видим другой пример.

У нас есть класс A с подклассом B а класс B с подклассом C Диаграмма справа - фото 210

У нас есть класс A с подклассом B, а класс B с подклассом C.

Диаграмма справа от вас показывает отношения наследования.

Класс A имеет конструктор без аргументов, который печатает строку A, пробел.

В классе B мы видим, что есть также конструктор без аргументов, который правильно вызывает сначала конструктор суперкласса A, затем печатает строку B, пробел.

В классе C конструктор без аргументов сначала вызывает конструктор его суперкласса B, а затем печатает строку C точка.

Теперь, что происходит, когда мы создаем новый объект класса C?

Конструктор C вызывает конструктор B, который в свою очередь, вызывает конструктор А.

Таким образом, печатается: A, пробел, B, пробел, C точка.

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

Приведение типов

Давайте посмотрим снова на эту иерархию классов Легковой автомобиль и - фото 211

Давайте посмотрим снова на эту иерархию классов.

Легковой автомобиль и грузовик являются подклассами или производными классами - фото 212

Легковой автомобиль и грузовик являются подклассами или производными классами класса vehicle.

Вопрос в том, если ли у нас есть объект класса car, мы можем использовать его там, где должны быть объекты класса vehicle?

Например, в переменной vehicle?

И наоборот можем ли мы поместить объекты суперкласса там где должны быть - фото 213

И наоборот, можем ли мы поместить объекты суперкласса там, где должны быть объекты подкласса?

И если да, то при каких обстоятельствах?

Мы говорим о кастинге или приведении при преобразовании объекта из одного класса к другому связанному классу.

Представьте себе, что у нас есть переменная vehicle, которая хранит объект vehicle, и переменная car, с сохраненным в нем объектом car.

Можем ли мы присвоить объект car переменной vehicle и наоборот Мы говорим о - фото 214

Можем ли мы присвоить объект car переменной vehicle и наоборот?

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Объектно-ориентированное программирование на Java. Платформа Java SE»

Представляем Вашему вниманию похожие книги на «Объектно-ориентированное программирование на Java. Платформа Java SE» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Объектно-ориентированное программирование на Java. Платформа Java SE»

Обсуждение, отзывы о книге «Объектно-ориентированное программирование на Java. Платформа Java SE» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x