Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 04.01.2018
Сообщений: 35

Наследование и полиморфизм

08.01.2018, 13:11. Показов 1661. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, помогите пожалуйста не знаю как вывести весь проект на консоль не создан главный класс Main , так как не знаю что туда пихать. Есть наброски вроде полностью рабочие.

Условие:
Построить модель программной системы с применением отношений (обобщения, ассоциации, использования, реализации) между классами. Задать атрибуты и методы классов. Ввести (если необходимо) дополнительные классы.
Сама задача:
Сиcтема Жилищно-коммунальные услуги. Квартиросъемщик отправляет Заявку, в которой указывает род работ, масштаб и желаемое время выполнения. Диспетчер формирует соответствующую Бригаду и регистрирует ее в Плане работ. Диспетчер может отклонить Заявку в случае занятости всех Бригад.

Мои наброски:

Класс диспетчер

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Dispatcher extends User {
    private WorkPlan workPlan;
 
    public WorkPlan getWorkPlan() {
        return workPlan;
    }
 
    public void setWorkPlan(WorkPlan workPlan) {
        this.workPlan = workPlan;
    }
 
    public boolean acceptRejectRequest(Request request) {
        return workPlan.checkAvailability();
    }
 
    public void createNewSquad(String name, String[] workers) {
        Squad squad = new Squad(name);
        for (int i = 0; i<workers.length; i++) {
            squad.addWorker(workers[i]);
        }
        workPlan.addSquad(squad);
    }
}
Класс квартиросъемщик

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class Tenant extends User {
    private Set requests = new HashSet();
    private WorkPlan workPlan;
    private String address;
 
    public Tenant(String account, String password, String name, String surname, String address) {
        super(account, password, name, surname);
        this.address = address;
    }
 
    public Tenant(String account, String password, String address) {
        super(account, password);
        this.address = address;
    }
 
    public WorkPlan getWorkPlan() {
        return workPlan;
    }
 
    public void setWorkPlan(WorkPlan workPlan) {
        this.workPlan = workPlan;
    }
 
    public String getAddress() {
        return address;
    }
 
    public void setAddress(String address) {
        this.address = address;
    }
 
    public void createRequest(String task, String jobType, Date doneBefore) {
        Request request = new Request(this, address, task, jobType, doneBefore);
        requests.add(request);
        workPlan.proceedRequest(this, request);
    }
 
    public void deleteRequest(Request request) {
        requests.remove(request);
    }
 
    public Set getRequests() {
        return requests;
    }
}
Класс пользователь

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public class User {
    protected String account;
    protected String password;
    protected String name;
    protected String surname;
 
    public String getAccount() {
        return account;
    }
 
    public void setAccount(String account) {
        this.account = account;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getSurname() {
        return surname;
    }
 
    public void setSurname(String surname) {
        this.surname = surname;
    }
 
    public User() {
    }
 
    public User(String account, String password, String name, String surname) {
        this.account = account;
        this.password = password;
        this.name = name;
        this.surname = surname;
    }
 
    public User(String account, String password) {
        this.account = account;
        this.password = password;
    }
}
Класс бригада

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
 
public class Squad {
    private String squadName;
    private List<String> workers = new ArrayList<String>();
    private Set<Request> requests = new HashSet<Request>();
 
    public Squad(String squadName) {
        this.squadName = squadName;
    }
 
    public String getSquadName() {
        return squadName;
    }
 
    public void addWorker(String worker) {
        workers.add(worker);
    }
 
    public void removeWorker(String worker) {
        workers.remove(worker);
    }
 
    public List<String> getWorkers() {
        return workers;
    }
 
    public void addRequest(Request request) {
        requests.add(request);
        request.setSquad(this);
    }
 
    public void removeRequest(Request request) {
        requests.remove(request);
        request.setSquad(null);
    }
 
    public Set<Request> getRequests() {
        return requests;
    }
}
Класс заявка

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import java.util.Date;
 
public class Request {
    private Tenant owner;
    private String address;
    private String task;
    private String jobType;
    private Date doneBefore;
    private Squad squad;
 
    public Request(Tenant owner, String address, String task, String jobType, Date doneBefore) {
        this.owner = owner;
        this.address = address;
        this.task = task;
        this.jobType = jobType;
        this.doneBefore = doneBefore;
    }
 
    public Tenant getOwner() {
        return owner;
    }
 
    public String getAddress() {
        return address;
    }
 
    public String getTask() {
        return task;
    }
 
    public Squad getSquad() {
        return squad;
    }
 
    public void setSquad(Squad squad) {
        this.squad = squad;
    }
 
    public String getJobType() {
        return jobType;
    }
 
    public Date getDoneBefore() {
        return doneBefore;
    }
}
Класс план работ
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
 
public class WorkPlan implements IWorkPlan {
    private Set<Squad> squads = new HashSet<Squad>();
    private Dispatcher dispatcher;
 
    @Override
    public void login(Dispatcher disp) {
        dispatcher = disp;
        dispatcher.setWorkPlan(this);
    }
 
    @Override
    public void login(Tenant tenant) {
        tenant.setWorkPlan(this);
    }
 
    @Override
    public void proceedRequest(Tenant tenant, Request request) {
        dispatcher.acceptRejectRequest(request);
    }
 
    @Override
    public void addSquad(Squad squad) {
 
    }
 
    @Override
    public void removeSquad(Squad squad) {
 
    }
 
    @Override
    public void showAll() {
        System.out.println("Список бригад:");
        Iterator<Squad> iterator = squads.iterator();
        while (iterator.hasNext()) {
            showSquad(iterator.next());
        }
    }
 
    @Override
    public void showSquad(Squad squad) {
        System.out.println(squad.getSquadName() + "; работников в бригаде = " + squad.getWorkers().toArray().length
        + "; заявок у бригады = " + squad.getRequests().toArray().length);
    }
 
    @Override
    public boolean checkAvailability() {
        Iterator<Squad> iterator = squads.iterator();
        while (iterator.hasNext()) {
            if (iterator.next().getRequests().toArray().length == 0)
                return true;
        }
        return false;
    }
}
Интерфейс План работ (ваще не знаю нужен или нет для вывода в консоль)

Java
1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Set;
 
public interface IWorkPlan {
    void login(Dispatcher dispatcher);
    void login(Tenant tenant);
    void proceedRequest(Tenant tenant, Request request);
    void addSquad(Squad squad);
    void removeSquad(Squad squad);
    void showAll();
    void showSquad(Squad squad);
    boolean checkAvailability();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.01.2018, 13:11
Ответы с готовыми решениями:

Наследование и полиморфизм
Привет. Недавно на собеседовании спросили два таких вопроса, на которые я протупил и до сих пор не пойму ничего: 1. Есть класс А, есть...

Наследование/Полиморфизм
Есть туристическая фирма, которая была основана в Y году, и организует путешествия в N стран. Про каждую страну сохраняется информация: -...

Наследование/Полиморфизм
Есть туристическая фирма, которая была основана в Y году, и организует путешествия в N стран. Про каждую страну сохраняется информация: -...

2
 Аватар для Сергей_СПб
28 / 3 / 1
Регистрация: 13.12.2017
Сообщений: 192
09.01.2018, 10:56
Напиши что делает каждый класс, какие у него задачи??
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
09.01.2018, 11:07
Создаешь класс, в нем метод public static void main(String... args);
В методе создаешь экземпляры своих классов, что-нибудь с ними делаешь.
В чем вопрос то?

Добавлено через 1 минуту
Цитата Сообщение от Alex562035 Посмотреть сообщение
@Override
* * public void showSquad(Squad squad) {
* * * * System.out.println(squad.getSquadName() + "; работников в бригаде = " + squad.getWorkers().toArray().length
* * * * + "; заявок у бригады = " + squad.getRequests().toArray().length);
* * }
про toString погугли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.01.2018, 11:07
Помогаю со студенческими работами здесь

Java наследование и полиморфизм
Определить иерархию амуниции рыцаря. Экипировать рыцаря. посчитать стоимость амуниции. Провести сортировку амуниции по весу. Найти...

Интерфейсы, наследование и полиморфизм
Доброго времени суток! Помогите, пожалуйста, исправить ошибку. Задание такое:&quot;Реализовать абстрактные классы или интерфейсы, а также...

Инкапсуляция, Полиморфизм, Наследование
import java.io.*; import java.util.*; public class Nasledovanie { public static void main(String args) throws Exception{ ...

Про полиморфизм и возможно наследование
У Кея Хорстманна написанно: 5.1.6. Представление о вызовах методов Важно понять, каким образом вызов метода применяется к объекту....

Абстрактные классы, наследование, полиморфизм и интерфесы
Помогите, пожалуйста, решить задание. Реализовать абстрактные классы или интерфейсы, а также наследование и полиморфизм для следующих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru