ООП. Задания
Создать класс «Матрица». Класс должен иметь следующие переменные:
Класс должен иметь следующие методы:
- сложение с другой матрицей;
- умножение на число;
- вывод на печать;
- умножение матриц.
3. Читатели библиотеки
Определить класс Reader , хранящий такую информацию о пользователе библиотеки:
- ФИО,
- номер читательского билета,
- факультет,
- дата рождения,
- телефон.
- Методы takeBook() , returnBook() .
- Разработать программу, в которой создается массив объектов данного класса.
- Перегрузить методы takeBook() , returnBook() :
— takeBook , который будет принимать количество взятых книг. Выводит на консоль сообщение «Петров В. В. взял 3 книги».
— takeBook , который будет принимать переменное количество названий книг. Выводит на консоль сообщение «Петров В. В. взял книги: Приключения, Словарь, Энциклопедия».
— takeBook , который будет принимать переменное количество объектов класса Book (создать новый класс, содержащий имя и автора книги). Выводит на консоль сообщение «Петров В. В. взял книги: Приключения, Словарь, Энциклопедия». - Аналогичным образом перегрузить метод returnBook() . Выводит на консоль сообщение «Петров В. В. вернул книги: Приключения, Словарь, Энциклопедия». Или «Петров В. В. вернул 3 книги».
4. Рекурсивный вывод чисел
Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае. Использовать рекурсию.
5. Наследование Student, Aspirant
- Создайте пример наследования, реализуйте класс Student и класс Aspirant , аспирант отличается от студента наличием некой научной работы.
- Класс Student содержит переменные: String firstName , lastName , group . А также, double averageMark , содержащую среднюю оценку.
- Создать метод getScholarship() для класса Student , который возвращает сумму стипендии. Если средняя оценка студента равна 5, то сумма 2000 грн, иначе 1900. Переопределить этот метод в классе Aspirant . Если средняя оценка аспиранта равна 5, то сумма 2500 грн, иначе 2200.
- Создать массив типа Student , содержащий объекты класса Student и Aspirant . Вызвать метод getScholarship() для каждого элемента массива.
Смотрите решение задачи в видео 1 , видео 2 .
6. Автомобили
- Создать класс Car в пакете com.company.vehicles , Engine в пакете com.company.details и Driver в пакете com.company.professions .
- Класс Driver содержит поля — ФИО, стаж вождения.
- Класс Engine содержит поля — мощность, производитель.
- Класс Car содержит поля — марка автомобиля, класс автомобиля, вес, водитель типа Driver , мотор типа Engine . Методы start() , stop() , turnRight() , turnLeft() , которые выводят на печать: «Поехали», «Останавливаемся», «Поворот направо» или «Поворот налево». А также метод toString() , который выводит полную информацию об автомобиле, ее водителе и моторе.
- Создать производный от Car класс — Lorry (грузовик), характеризуемый также грузоподъемностью кузова.
- Создать производный от Car класс — SportCar , характеризуемый также предельной скоростью.
- Пусть класс Driver расширяет класс Person .
7. Животные
- Создать класс Animal и расширяющие его абстрактные классы Dog , Cat , Bear .
- Класс Animal содержит переменную name и абстрактные методы makeNoise , eat , getDescription . Метод makeNoise , например, может выводить на консоль звуки животных. Метод eat выводит на консоль список того, чем питается данное животное. Метод getDescription возвращает описание животного.
- Dog , Cat , Bear переопределяют методы makeNoise , eat , getDescription .
- Создайте класс Ветеринар , в котором определите метод void treatAnimal(Animal animal) . Пусть этот метод распечатывает name и описание пришедшего на прием животного.
- В методе main создайте массив типа Animal , в который запишите животных всех имеющихся у вас типов. В цикле отправляйте их на прием к ветеринару. В отдельном цикле вызовите методы makeNoise , eat для каждого животного.
8. Уровни доступа
private | default | protected | public |
1. | Один и тот же класс | ||
2. | Подкласс, находящийся в том же пакете, что и супер класс | ||
3. | Класс из того же самого пакета, не являющийся подклассом. | ||
4. | Подкласс, находящийся в другом пакете. | ||
5. | Класс из другого пакета, не являющийся подклассом данного. |
9. Фигуры
- Создайте супер класс Shape и его наследников Circle , Rectangle .
- Класс Shape содержит абстрактный метод draw() и переменную хранящую цвет.
- Классы Circle , Rectangle содержат координаты точек.
- Создать массив содержащий эти фигуры.
- В цикле нарисовать их (вызвать метод draw ).
10. Интернет магазин, часть 1
- Создать класс Товар , имеющий переменные имя , цена , рейтинг .
- Создать класс Категория , имеющий переменные имя и массив товаров . Создать несколько объектов класса Категория .
- Создать класс Basket , содержащий массив купленных товаров.
- Создать класс User , содержащий логин, пароль и объект класса Basket . Создать несколько объектов класса User .
- Вывести на консоль каталог продуктов.
- Вывести на консоль покупки посетителей магазина.
- Процедурное и объектно-ориентированное программирование
- Принципы ООП
- Классы и объекты
- Конструктор
- Ключевое слово this
- Перегрузка
- Стек и куча
- Передача объектов в методы
- Java varargs
- Рекурсия
- Сборщик мусора и метод finalize
- Наследование
- Ключевое слово super
- Модификаторы доступа
- Геттеры и сеттеры
- Переопределение методов
- Абстрактные классы и методы
- Ключевое слово final
Задача на наследование java
пипец, неделю потратил на одну из задач. JavaRush, можете пожалуйста снизить сложность задач, это что то невыполнимое.
Чет не пойму совсем. Прошел syntax zero, в конце которого было уже ООП, лямбды и стримы, с предвкушением ждал что же будет в core, а тут задачи уровня допиши классам extends. Как-то сложность не туда завернула совсем.
Чем дальше прохожу тем сильнее фраза «У НАС 1200 ЗАДАЧ В КУРСЕ АААААААА!» воспринимается иначе. В курсе действительно есть 1200 чего-то там, но есть ли 1200 задач?
Надеюсь вы понимаете, что тут акцент на то, чтобы вы поняли как работает наследование. Тут прививают логику и механическую память, всё ок. Вангую, часть тех кто сейчас пишет о том, КАК ТУТ БЫЛО ПРОСТО, вернутся к лекциям об ООП, чтобы вкурить как правильно и логичнее наследоваться. Авторам, спасибо за ваш труд
Що ви жалієтесь ?Типу всі так заповнити попередні 20 лекцій що повторювати не потрібно ?.Я гарантію даю на те що більша половина завалилась би на питнанні про ООП.А задачки такі просто дають змогу че чіткіше запамятати.
JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.
Задача на наследование java
Первую задачу сделал (добился правильного результата), но валидацию не прошло. Заглянул в решение, и выпал в осадок)) такое даже в страшном сне не приснится. Если кто-то сам до этого допетрил, то он просто гений. Но это не реально на данном уровне наших познаний. Поэтому копипаст в помощь и пошел дальше, зачем мне эти головоломки?
Создание задач: Лёгкий уровень (условие поставленно корректно). Средний уровень (объяснение может быть как и хорошим, так и плохим. Иногда нужно немного погуглить). Хард уровень (Объяснение? Кому оно нужно? Сделай мне из палки ядерный реактор. Гуглить придётся ой как долго и ой как мучительно).
Практически все эти задачи на внутренние классы плохо поддаются пониманию, Условия очень абстрактны. Помучавшись, просто открываю решение. И.. вот оно что хотели..
Что-то очень всё странно и не понятно с горем пополам иду в перёд, но иногда ощущение, что вообще не чего не понимаю, я такай один?
очень глупо написана задача 1. Сделать так, что бы (Math.PI)здец какой криво-косо написанный код заработал? Думайте над задачами перед их запуском в продакшн! Пример по внутренним классам ужаснейший.
JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.