Практикум по ооп java

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Домашние задания по ООП на Java

DispenserBro/GBHWJavaOOP

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Домашние работы по Java ООП

В данном репозитории собраны выполненные мной ДЗ с семинаров GeekBrains по ООП на языке Java

Все выполненные ДЗ лежат в директориях с названиями

Код заданий находится в файле

директории с аналогичным названием или в директории ДЗ

  • Выполнить ДЗ с первого семинара
  • Выполнить ДЗ со второго семинара
  • Выполнить ДЗ с третьего семинара
  • Выполнить ДЗ с четвертого семинара
  • Выполнить ДЗ с пятого семинара
  • Выполнить ДЗ с шестого семинара
  • Выполнить ДЗ с седьмого семинара
Читайте также:  Python комплексное сопряжение матрицы

Ниже указаны ДЗ по семинарам с заданиями:

  • Добавить в класс Animal методы двигаться(toGo), летать(fly), плавать(swim). Создать по два класса наследника Animal, умеющих летать, плавать, бегать. В файле readme.md в репозитории github (или ему подобных) описать какие проблемы в таком проектировании Вы увидели, там же написать возникшие при выполнении дз вопросы (если они есть).
  • Создать класс Doctor. Создайте интерфейсы Runnable, Flyable, Swimmable. У интерфейсов должны быть методы получения скорости заданного действия. Добавьте наследников этим интерфейсам, но таким образом, чтобы у каждого интерфейса было минимум по два наследника (при необходимости, добавьте в приложение новые классы) У ветеринарной клиники добавьте методы получения всех бегающих, всех плавающих, всех говорящих и всех летающих и вообще всех животных. Постарайтесь максимально логично переписать архитектуру проекта.
  • *Факультативное задание (особенно java-разработчикам). Установить gradle. Добавить lombok в зависимости, и заменить геттеры и сеттеры на аннотации. Если сделаете это задание, скопируйте код проекта в проект gradle.
  • Создать сет компонентов, и сделать так, чтобы в нем не было 2 одинаковых. (Специально создать два одинаковых компонента в Main и попытаться их добавить в сет)
  • * Set result = new HashSet<>(components); (подсказка переопределить методы equals и hashCode).
  • Переписать compareTo так, чтобы если power лекарств равны, сравнение шло еще и по названиям компонентов лекарства
  • Реализовать свой LinkedList с методами вставки в начало, конец списка, получения размера списка и получения элемента по индексу (можете добавить какие-то еще)
  • Переделать код из семинара, но так, чтобы у Вас был начальный capacity (что такое capacity обсуждаем в конце семинара)
  • Покрыть код из семинара тестами (все методы, причем подумайте о разных кейсах тестирования)

About

Домашние задания по ООП на Java

Источник

ООП. Задания

Создать класс «Матрица». Класс должен иметь следующие переменные:

Класс должен иметь следующие методы:

  1. сложение с другой матрицей;
  2. умножение на число;
  3. вывод на печать;
  4. умножение матриц.

3. Читатели библиотеки

Определить класс Reader , хранящий такую информацию о пользователе библиотеки:

  1. ФИО,
  2. номер читательского билета,
  3. факультет,
  4. дата рождения,
  5. телефон.
  6. Методы takeBook() , returnBook() .
  7. Разработать программу, в которой создается массив объектов данного класса.
  8. Перегрузить методы takeBook() , returnBook() :
    — takeBook , который будет принимать количество взятых книг. Выводит на консоль сообщение «Петров В. В. взял 3 книги».
    — takeBook , который будет принимать переменное количество названий книг. Выводит на консоль сообщение «Петров В. В. взял книги: Приключения, Словарь, Энциклопедия».
    — takeBook , который будет принимать переменное количество объектов класса Book (создать новый класс, содержащий имя и автора книги). Выводит на консоль сообщение «Петров В. В. взял книги: Приключения, Словарь, Энциклопедия».
  9. Аналогичным образом перегрузить метод returnBook() . Выводит на консоль сообщение «Петров В. В. вернул книги: Приключения, Словарь, Энциклопедия». Или «Петров В. В. вернул 3 книги».
Читайте также:  Циклы python конспект урока

4. Рекурсивный вывод чисел

Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае. Использовать рекурсию.

5. Наследование Student, Aspirant

  1. Создайте пример наследования, реализуйте класс Student и класс Aspirant , аспирант отличается от студента наличием некой научной работы.
  2. Класс Student содержит переменные: String firstName , lastName , group . А также, double averageMark , содержащую среднюю оценку.
  3. Создать метод getScholarship() для класса Student , который возвращает сумму стипендии. Если средняя оценка студента равна 5, то сумма 2000 грн, иначе 1900. Переопределить этот метод в классе Aspirant . Если средняя оценка аспиранта равна 5, то сумма 2500 грн, иначе 2200.
  4. Создать массив типа Student , содержащий объекты класса Student и Aspirant . Вызвать метод getScholarship() для каждого элемента массива.

Смотрите решение задачи в видео 1 , видео 2 .

6. Автомобили

  1. Создать класс Car в пакете com.company.vehicles , Engine в пакете com.company.details и Driver в пакете com.company.professions .
  2. Класс Driver содержит поля — ФИО, стаж вождения.
  3. Класс Engine содержит поля — мощность, производитель.
  4. Класс Car содержит поля — марка автомобиля, класс автомобиля, вес, водитель типа Driver , мотор типа Engine . Методы start() , stop() , turnRight() , turnLeft() , которые выводят на печать: «Поехали», «Останавливаемся», «Поворот направо» или «Поворот налево». А также метод toString() , который выводит полную информацию об автомобиле, ее водителе и моторе.
  5. Создать производный от Car класс — Lorry (грузовик), характеризуемый также грузоподъемностью кузова.
  6. Создать производный от Car класс — SportCar , характеризуемый также предельной скоростью.
  7. Пусть класс Driver расширяет класс Person .

Иерархия классов фото

7. Животные

  1. Создать класс Animal и расширяющие его абстрактные классы Dog , Cat , Bear .
  2. Класс Animal содержит переменную name и абстрактные методы makeNoise , eat , getDescription . Метод makeNoise , например, может выводить на консоль звуки животных. Метод eat выводит на консоль список того, чем питается данное животное. Метод getDescription возвращает описание животного.
  3. Dog , Cat , Bear переопределяют методы makeNoise , eat , getDescription .
  4. Создайте класс Ветеринар , в котором определите метод void treatAnimal(Animal animal) . Пусть этот метод распечатывает name и описание пришедшего на прием животного.
  5. В методе main создайте массив типа Animal , в который запишите животных всех имеющихся у вас типов. В цикле отправляйте их на прием к ветеринару. В отдельном цикле вызовите методы makeNoise , eat для каждого животного.
Читайте также:  Java svg to bufferedimage

8. Уровни доступа

private default protected public
1. Один и тот же класс
2. Подкласс, находящийся в том же пакете, что и супер класс
3. Класс из того же самого пакета, не являющийся подклассом.
4. Подкласс, находящийся в другом пакете.
5. Класс из другого пакета, не являющийся подклассом данного.

9. Фигуры

  1. Создайте супер класс Shape и его наследников Circle , Rectangle .
  2. Класс Shape содержит абстрактный метод draw() и переменную хранящую цвет.
  3. Классы Circle , Rectangle содержат координаты точек.
  4. Создать массив содержащий эти фигуры.
  5. В цикле нарисовать их (вызвать метод draw ).

10. Интернет магазин, часть 1

  1. Создать класс Товар , имеющий переменные имя , цена , рейтинг .
  2. Создать класс Категория , имеющий переменные имя и массив товаров . Создать несколько объектов класса Категория .
  3. Создать класс Basket , содержащий массив купленных товаров.
  4. Создать класс User , содержащий логин, пароль и объект класса Basket . Создать несколько объектов класса User .
  5. Вывести на консоль каталог продуктов.
  6. Вывести на консоль покупки посетителей магазина.
  • Процедурное и объектно-ориентированное программирование
  • Принципы ООП
  • Классы и объекты
  • Конструктор
  • Ключевое слово this
  • Перегрузка
  • Стек и куча
  • Передача объектов в методы
  • Java varargs
  • Рекурсия
  • Сборщик мусора и метод finalize
  • Наследование
  • Ключевое слово super
  • Модификаторы доступа
  • Геттеры и сеттеры
  • Переопределение методов
  • Абстрактные классы и методы
  • Ключевое слово final

Источник

Оцените статью