JavaRush/Java блог/Архив info.javarush/Уровень 11: план уровня и доп. материалы
hubert
41 уровень

Уровень 11: план уровня и доп. материалы

Статья из группы Архив info.javarush
участников
План уровня:
  • Основы ООП: основные принципы, наследование, инкапсуляция.
  • Принципы ООП: абстракция, инкапсуляция, наследование и полиморфизм.
  • Принцип слабой связности
  • Абстракция
  • Наследование детально
  • Инкапсуляция детально, преимущества

Курс Java Что еще можно посмотреть на досуге: Ссылка на вики по ООП Интересная статья про наследование
Нашли классную ссылку к материалу данной темы? Добавьте ее сюда в виде комментария. Возможно, именно Ваша ссылка поможет другому человеку стать программистом и улучшить свою жизнь!

Вернуться к плану обучения
Вернуться к обучению java онлайн на JavaRush
Комментарии (13)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
MariaM
Уровень 24
11 августа 2016, 12:46
интересно, насколько хорош пример из 1ой лекции, где кит наследуется от коровы и переопределяются методы. В доп.материалах есть статья, в которой всячески от такого предостерегают. Согласно статье, наследование должно быть только в том случае, если наследник является также и родителем (н-р: корова — животное). А в примере лекции по-моему это не совсем так.
Yuri_0504
Уровень 11
2 октября 2016, 15:10
Вы сильно удивитесь когда узнаете, что и киты и коровы относятся к животным и млекопитающим :D
Впрочем как и люди ;)
Yuri_0504
Уровень 11
2 октября 2016, 21:26
Прочитал не внимательно — написал глупость. Конечно не стоит кита от коровы наследовать. Вот обоих от класса Animal будет нормально.
IvanSPb
Уровень 21
6 марта 2016, 22:38
Возможно, только у меня возник вопрос, почему в одном файле несколько классов, как так может быть — ведь говорили о том, что один файл — один класс.
На 11 уровне активно используются внутренние классы, так называемые inner classes. Странно, но раньше эта тема никак и нигде не затронута. Есть еще nested classes — вложенные классы.
Поискал на эту тему материал — оказывается, тут есть о чем поговорить и все не так просто, хотя и ничего сверхсложного тоже нет. Рекомендую к прочтению, даже сказал бы must read. Сжатая, но очень емкая статья:
easy-code.ru/lesson/java-nested-classes
shagi
Уровень 39
10 ноября 2014, 19:46
Подскажите, если мы инкапсулируем поля, то зачем тогда потом им создавать методы get и set? Разве по сути это не тоже самое, если бы они были pulbic?
dimaMJ
Уровень 25
10 августа 2014, 17:39
Допустим у нас нужно создать домашних животных (кот, собака, корова, свинья). У меня возник вопрос как будет лучше и правильней?
1) Создать класс Pets и в нем задать конструктор с параметрами Pets(String тип животного,String имя, и т.д.) и проверять если допустим тип Собака, то будут вызываться определенные ф-ции, которые подходят только к собаке.
2) Создать класс Pets, и создавать классы кот, собака, корова, свинья и наследовать их от Pets. Но тут вопрос, так как я только учусь) Допустим в Pets есть метод setvoice, который загружает звук, могу ли я в разных классах его вызывать и в параметр передавать определенные звуки или как по другому можно животному присвоить свой звук ?) Обьясните кому не сложно) У нас получается что классы Cat и другие как бы являются экземплярами класса Pets и имеют возможность добавлять свои методы?
tanzwud
Уровень 34
10 августа 2014, 19:30
Начнем с создания абстрактного класса. Который отвечает за общие для всех петКонечно не каждй Pet может исдавать звуки, но мы посчитаем что это так. В будущем проще использовать интерфейсе к примему Voceable.
Задем создадим класс Dog где уже определим этот самый метод.
одна из разновидностей Pet
Ну а дальше дело техники по образу и подобию создаем коров и тп. Простейшее наследование в работе.
Как все это использовать? Лучше всего глянуть на шаблоны проектирования, к примеру на AbstractFactory. Чтобы не перезагружать информацией, вот простейшее использования получившегося Java Runtime полиморфизма в действии.
main
Ну и на последок UML Диаграма наших классов.

Да как Pet так и разные классы которые его наследуют могут иметь отличные методы а также могут Override, Overload различные методы, наследовать интерфейсы и тп.
dimaMJ
Уровень 25
10 августа 2014, 19:45
спасибо, более менее понятно) я думаю пока ООП на практике не попробую, то ничего толком не пойму) так на уровне теории понятно, а на уровне практики пока нет, ну все впереди) У меня появился этот вопрос из-за примера в 11 лекции, с шахматами (там где классы фигур), там у меня возник вопрос, если все классы наследуют один класс у которого три переменные, то у каждого класса соответственно значения этих переменных будут разные?
tanzwud
Уровень 34
10 августа 2014, 19:50
По умолчанию все значения будут братся из родительского класса. Однако наследники могут эти значения переопределять как минимум.
dimaMJ
Уровень 25
10 августа 2014, 19:51
понятно, спасибо)
rmk
Уровень 21
9 февраля 2014, 12:19
а где сама лекция?)

план лекции есть, а лекцию где взять?)
iruslan
Уровень 21
13 февраля 2014, 00:52
интернет батенька))
Diana
Уровень 41
13 февраля 2014, 04:35
Лекция внутри курса JavaRush