|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
|
Задание из курса JAVA EPAM14.02.2024, 21:55. Показов 1246. Ответов 18
Метки contact book (Все метки)
Description
In this exercise we are going to manage contacts information. A Contact is a class containing different information of how to reach a person or a company: phone number, emails, social media. A contact has a name, which is provided via the class constructor. Also, a contact contains limited amount of entries: a phone number (only a single one) emails (up to 3 entries) social media links (up to 5 entries) A contact info entry is described with ContactInfo interface. Each entry has a title and a value. You need to implemented them as nested classes of the Contact class: Contact.NameContactInfo - A ContactInfo implementation providing the name of the contact. Implement as private non-static nested class. Use "Name" for the entry title. It must not have its own fields. It must use fields of the bounded Contact instance instead. Contact.Email - A ContactInfo implementation containing an email. Implement as public static nested class. Use "Email" for the entry title. Contact.Social - A ContactInfo implementation containing a social media link/id. Implement as public static nested class. Let the user of the class define the title. Other implementations must be anonymous. Do not provide other non-anonymous classes. It is possible to add contact info entries via add* methods. All such methods return the created entry as the result, null if nothing was added to the contact. addEmail(String localPart, String domain) Adds an email entry. addEmail("someone", "somewhere.com").getValue() will result to someone@somewhere.com. addEpamEmail(String firstname, String lastname) Adds a special email entry with "epam.com" domain. Please, implement this method using an anonymous extension of the Email class. Use "Epam Email" for the entry title. addEpamEmail("some", "one").getValue() will result to some_one@epam.com addPhoneNumber(int code, String number) Adds a contact info entry for the phone number. Please, implement this method using an anonymous class. Use "Tel" for the entry title. addPhoneNumber(44, "444 444-44-44").getValue() will result to +44 444 444-44-44 addTwitter(String twitterId) Adds a contact info entry for the Twitter social media id. Use "Twitter" for the entry title, the given id for the value. addInstagram(String instagramId) Adds a contact info entry for the Instagram social media id. Use "Instagram" for the entry title, the given id for the value. addSocialMedia(String title, String id) Adds a contact info entry for the generic social media id. Use the given title for the entry title, the given id for the value. Note that it is possible to rename contact with the rename method. Make sure it is not possible to rename contact to have null or empty value as the name. One more method that the Contact class have is the getInfo() method. This method returns an array containing the ContactInfo entries in the following order: name contact info phone number contact info (if set) email entries in order of addition (if any added) social media entries in order of addition (if any added) Resulting array must not contain any null values. Important restriction: Note that in this exercise you may not use Collections and Streams. Может кто то сталкивался с этим или знает как решитьб просто не могу сообразить
0
|
|
| 14.02.2024, 21:55 | |
|
Ответы с готовыми решениями:
18
Java Team Leader for Barclays Capital! EPAM Systems, Kiev Срочно Senior Java Dev! Bonus $3000! Киев, компания EPAM Systems В чем неточность?(Задание с курса) |
|
156 / 62 / 16
Регистрация: 12.12.2023
Сообщений: 389
|
|
| 15.02.2024, 08:45 | |
|
Тут же не задание где нужно что то "решать", искать какие то способы реализации, тут просто детальная пошаговая инструкция что именно вы должны написать на языке программирования. Ничего кроме самого языка программирования знать не нужно.
2
|
|
|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
|
| 15.02.2024, 10:19 [ТС] | |
|
Не могу понять что методы add должны возвращать объекты внутренних классов? Пишут что должны быть и анонимные классы
0
|
|
|
156 / 62 / 16
Регистрация: 12.12.2023
Сообщений: 389
|
|
| 15.02.2024, 10:26 | |
|
Да, по условию addXxx() должно вернуть тот объект который был добавлен либо null если ничего не добавлено.
0
|
|
|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
|
| 15.02.2024, 10:36 [ТС] | |
|
И ещё не понял условие на количество надо в метод adxxx() ставить? Просто меня смущает что там написано про анонимные классы, и не могу понять какую там надо логику описывать
0
|
|
|
156 / 62 / 16
Регистрация: 12.12.2023
Сообщений: 389
|
|
| 15.02.2024, 10:40 | |
|
Раз написано что add может вместо добавленного объекта вернуть null, то есть ничего не добавить - единственной причиной почему он это не сделает является описанное ограничение на количество элементов. То есть в add() должна быть проверка не достигнут ли уже лимит.
Сам формат задания показывает что оно явно не на проверку умения программировать, а на умение понимать ТЗ и четко ему следовать.
0
|
|
|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
|
| 15.02.2024, 15:57 [ТС] | |
|
Спасибо!
Добавлено через 5 часов 11 минут Теперь только не могу найти как в последний метод getinfo() в массив всё это поместить
0
|
|
|
156 / 62 / 16
Регистрация: 12.12.2023
Сообщений: 389
|
|
| 15.02.2024, 16:13 | |
|
Ну так берете и засовываете в него в том порядке как написано, сначала name, потом телефон если есть, потом все емэйлы и так далее
Если под массивом имеется в виду не список а именно [], ну значит нужно заранее посчитать сколько в нем элементов и только тогда выделять ContactInfo[] info = new ContactInfo[count] и заполнять
0
|
|
|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
|
| 15.02.2024, 16:31 [ТС] | |
|
Чтоб посчитать этг надо в каждый метод static int++ счётчик ставить
0
|
|
|
156 / 62 / 16
Регистрация: 12.12.2023
Сообщений: 389
|
|
| 15.02.2024, 16:34 | |
|
Зачем? Вы же внутри храните все эти объекты. В одой переменной имя, в другой переменной телефон, в каком то списке емэйлы. Вот и суммируйте 1 имя плюс 0 или 1 телефон плюс размер списка с емэйлами
0
|
|
|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
||||||
| 15.02.2024, 16:43 [ТС] | ||||||
|
Так в условии написано чтоб без коллекции, вот я и пробую без list
Добавлено через 7 минут Понимаю что вроде всё просто но немного тяжело понимаю, вот код, можете подсказать я вообще в правильном направлении или нет?
0
|
||||||
|
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
|
|
| 15.02.2024, 17:03 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
|
| 15.02.2024, 17:09 [ТС] | |
|
Это да, это я сразу понял, просто пока ещё не исправил завис на массиве
0
|
|
|
156 / 62 / 16
Регистрация: 12.12.2023
Сообщений: 389
|
||||||
| 15.02.2024, 17:23 | ||||||
|
Вы как вроде вообще ТЗ не читали и делаете все "по мотивам".
Попробуйте нарисовать скелет без единой строчки кода, одни только декларации. Это по факту уже будет много больше половины задания. Читаете нужен класс Contact - создаете пустой класс Contact Читаете нужен в нем конструктор с именем - создаете конструктор с параметром Staing name но никакого кода, никуда не присваиваете Читаете что нужен интерфейс ContactInfo, декларируете пустой интерфейс ContactInfo Читаете что имя будет храниться в отдельном классе Contact.NameContactInfo который имплементирует ContactInfo - создаете этот класс, пустой, внутри Contract, с implements ContractInfo И вот так шаг за шагом создаете все классы, интерфейсы и методы, все пустое, без кода, но с правильным описанием всех параметров и возвращаемого результата. Потом добавляете везде где нужно поля, опять же внимательно читая ТЗ. Имя это не String, это NameContactInfo.
1
|
||||||
|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
|
| 15.02.2024, 17:38 [ТС] | |
|
В задаче уже был дан скелет и надо организовать логику, так вот я это и не могу сообразить, вроде читаю, может то что по английскому тяжело понять
0
|
|
|
156 / 62 / 16
Регистрация: 12.12.2023
Сообщений: 389
|
|
| 15.02.2024, 17:46 | |
|
В задаче класс Contact должен хранить в качестве полей объекты типов NameContactInfo, Email, Phone, Social.
А не String twitterId
1
|
|
|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
|
| 15.02.2024, 21:41 [ТС] | |
|
вроде начинаю догонять, просто учусь паралельно с основной работой и немного тяжело всё даётся. спасибо за помощь,как одолею то отпишусь!
0
|
|
|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
||||||
| 16.02.2024, 20:30 [ТС] | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 11.06.2022
Сообщений: 28
|
|
| 18.02.2024, 16:41 [ТС] | |
|
всё разабрался спасибо большое!)
0
|
|
| 18.02.2024, 16:41 | |
|
Помогаю со студенческими работами здесь
19
Задание из курса coursera с которым я не могу справиться exp ругается=) (или задание для первого курса) глупая студентка 1-го курса не может решить элементарное задание Задача из базового курса JAVA Java. Студент 3 курса ищет стажировку на лето, желательно с последующий трудоустройством Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|