С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для lerenia
3 / 3 / 3
Регистрация: 16.10.2012
Сообщений: 192

Реализация интерфейса

22.09.2014, 13:01. Показов 2010. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Нам дали такое задание
Постановка задачи
Необходимо реализовать подсистему информирования о взаимодействии игрока абстрактной игры с предметами в его инвентаре. Следует учесть, что кроме обычных преметов в подсистеме существуют предметы, которые являются “орудиями” или “носимыми вещами”.
Описание структуры приложения
Необходимо определить интерфейсы: • “Предмет”, описывающий спецификацию метода “удалить из инвентаря”; • “Используемое”, описывающий спецификацию метода “использовать”; • “Носимое”, описывающий спецификацию метода “экипировать”.
В описании интерфейсов использовать механизм наследования.
Необходимо определить классы: • “Железный слиток” (с возможностью удаления); • “Кузнечный молот” (с возможностями удаления, использования и экипировки); • “Железная броня” (с возможностями удаления и экипировки).
В реализациях методов интерфейсов предусмотреть вывод текстового сообщения о совершаемом действии на экран .
Описание работы приложения
1. При запуске приложение создает несколько предметов вышеописанных типов. 2. Приложение выводит имеющиеся в распоряжении игрока предметы. 3. Пользователь вводит предмет и желаемое действие («удалить из инвентаря», «экипировать» или «использовать», в противном случае приложение запросит ввод повторно). 4. Приложение выполнит действие (если это возможно, в противном случае выведет текст ошибки) и в цикле перейдет ко второму шагу.
По заданию необходимо предоставить собранный jar файл, а так же полный проект с исходными кодами (содержащий скрипт сборки jar файла).


Из задания я создала три класса: Molot, Slitok, Bron
и три интерфейса subject,uses, nosim
и вот начала реализовавыть интерфейсы в классах
я та поняла что Молот можно использовать и удалить из инвентаря соответсвенно я реализовала интерфейсы в данном классе:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Molot implements subject, uses {
 
    @Override
    public void del(int str2) {
 
 
     }
 
    @Override
    public void used(byte str2) {
 
    }
}
а в главном классе написала:
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
public class main {
    public static void  main(String args[])
    {
        Scanner input = new Scanner(System.in);
        String str = "";
        String str2 = "";
        byte slitok=1;
        byte molot=1;
        byte bronia=1;
        System.out.println("сейчас в вашем инвентаре: Слиток:" + slitok + "; Молот:" + molot +  "; Броня:" + bronia);
        System.out.println("Введите предмет ");
        str = input.next();
        System.out.println("что с ним сделать? ");
        str2 = input.next();
 
 
 
 
        if (str.equals("Молот"))
        {Molot s = new Molot();
            if (str2.equals("удалить"))
            }
 
    }
}
а как теперь реализовать метод "удалить"? куда это писать? и самое главное как это описать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.09.2014, 13:01
Ответы с готовыми решениями:

Реализация интерфейса
Реализовать интерфейс public interface TaskManager { public void addTask(Date date, Task task); public void removeTask(Date...

Реализация интерфейса
Добрый день. Вот код с книги Эккель -Философия Java. Не совсем ясен такой момент: Класс DirFilter реализует этот интерфейс...

Реализация интерфейса Cloneable
Здраствуйте. У меня не получается сделать нормальное клонирование обьектов. package bfm; import java.util.Arrays; import...

1
69 / 69 / 39
Регистрация: 22.05.2014
Сообщений: 311
24.09.2014, 01:12
Добрый день барышня.
Идем строго по ТЗ:
---------------------------
Необходимо определить интерфейсы: • “Предмет”, описывающий спецификацию метода “удалить из инвентаря”; • “Используемое”, описывающий спецификацию метода “использовать”; • “Носимое”, описывающий спецификацию метода “экипировать”.

сразу по англ - subject -предмет в школе

Используемое, носимое - смотрите, ставим глагол в инфинитив(использовать, носить), нормально переводим(use, carry) и в названиях интерфейсов после инфинитива добавляем частицу -able -- получается Usable, Carryable

Единственное, в идеале нужно уточнять сигнатуры методов в интерфейсах
---------------------
Необходимо определить классы: • “Железный слиток” (с возможностью удаления); • “Кузнечный молот” (с возможностями удаления, использования и экипировки); • “Железная броня” (с возможностями удаления и экипировки).

собака по английски не Sobaka, так же слиток не равно Slitok, переведите нормально

“Железный слиток” (с возможностью удаления) - это значит что этот класс implements Thingable и внутри этого класса ОБЯЗАТЕЛЬНО метод delete и по аналогии для других классов


---------------------
а как теперь реализовать метод "удалить"?

Написано: В реализациях методов интерфейсов предусмотреть вывод текстового сообщения о совершаемом действии на экран .

Короче внутри метода тупо написать System.out.println("Я удаляю чё-то там"), можна на английском
-----------------------------
и самое главное как это описать

описать = реализовать

------------------
куда это писать?

в класс IronBullion который implements Thingable и внутри себя имеет метод delete, писать нужно в этот самый метод delete()

Интерфейс - контракт на то, какие методы должен иметь класс, который этот интерфейс реализовует. Всё. Это просто набор методов с пустыми скобками.(ну бывают еще интерфейсы вообще без методов - маркеры)
А если ты взяла класс, и наследовала интерфейс(наследовала, реализовала, заимплементила одно и то же), то ты обязана внутри этого класса иметь все те методы, которые были в интерфейсе, также в том классе может быть еще все что угодно: другие методы, куча полей. Все те означает сигнатура(имена + типы аргументов + тип того что возвращает метод) А как методы реализовывать - дело твое.

Java
1
2
3
4
public interface Thingable {
    
    public void deleteItem();
}
Java
1
2
3
4
5
6
7
public class IronBullion implements Thingable {
 
    @Override
    public void deleteItem() {
        System.out.println("Напишешь тут сама");
    }
}
слово Override не обязательно, но лучше чтобы было(оно помогает программисту дружить с компилятором и т.д.)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.09.2014, 01:12
Помогаю со студенческими работами здесь

Явная реализация интерфейса
Доброго времени суток! Помогите, какими средствами в Java реализовать явные интерфейсы как в C#???

Реализация интерфейса collection
Доброго времени суток, я новичок в Java и при решении одной из своих первых задач столкнулся с некоторой проблемой. Задача: есть класс...

Реализация мультиязычного интерфейса
Я в своем приложении хочу реализовать мультиязычный интерфейс. У кого есть опыт в данном вопросе, как это лучше сделать? Создать...

Реализация интерфейса классом, где объявлен этот интерфейс
Почему такой код не работает? Есть ли способ исправления без переноса интерфейса вне класса Listenable. class Listenable implements...

Реализация интерфейса
Почему нельзя просто без реализации интерфейса написать метод? class Person : ICloneable { public string Name { get; set; } ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru