Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2018, 15:47   #1
1alex
 
Регистрация: 18.04.2015
Сообщений: 4
По умолчанию Интерфейсы

Помогите пожалуйста с заданием(прилагаю проект, который нужно изменить):
Код:
package MyPackage;
    
public class CompComplect{ 
    public static void main(String[] args) { 
    Mouse m1 = new Mouse(); 
    Klava k1 = new Klava(); 
    System.out.println(m1.toString()); 
    System.out.println(k1.toString()); 
    
    Mouse m2 = new Mouse(60, "lovely mouse", false); 
    Klava k2 = new Klava(30, "good klava", 101); 
 System.out.println(m2.toString()); 
    System.out.println(k2.toString()); 
    
    System.out.println(Mouse.avgCost()); 
    System.out.println(Klava.avgCost()); 
 System.out.println("__________________"); 
 
    
    MyContainer myC = new MyContainer(); 
    myC.add(m1); 
    myC.add(k1); 
    myC.add(m2); 
    myC.add(k2); 
    myC.print();
    
    System.out.println("__________________"); 
    myC.sortByCost(); 
    myC.print(); 
    } 
    } 
 
interface IGoods{
 
 void setCost(double cost);
 double getCost();
 void setName(String name);
 String getName();
}
 
abstract public class Goods implements Comparable<Goods>, IGoods{ 
    
    double cost; 
 String name; 
 
    Goods(){
    cost=0;
    name="NULL";
    }
    
    Goods(double cost, String name)
    {
    this.cost=cost;
    this.name=name;
    }
    
    public void setCost(double cost){ 
    this.cost = cost; 
    } 
 public double getCost(){ 
    return cost; 
    } 
    
    public void setName(String name){ 
    this.name = name; 
    } 
    public String getName(){ 
    return name; 
    } 
    
    abstract public String toString(); 
    
    public int compareTo(Goods o) { 
    if (this.cost < o.getCost()) 
    return -1; 
 else if (this.cost == o.getCost()) 
    return 0; 
    else
    return 1; 
    } 
    } 
 
 public class Mouse extends Goods {
    
    private String NewOld="NULL"; 
    static private int count = 0; 
    static private double commonCost = 0; 
    
    public Mouse() { 
    super();
    this.setCost(0); 
    this.setName("NULL"); 
    this.setNewOld("NULL"); 
    } 
    
    public Mouse(double cost, String name, boolean isNew){ 
    this.setCost(cost); 
    this.setName(name); 
    this.setNewOld(NewOld); 
    count++; 
    commonCost += cost; 
    } 
    
    public void setNewOld(String NewOld){ 
    this.NewOld = NewOld; 
    } 
    public String getNew(){ 
    return NewOld; 
    } 
    
    public String toString(){ 
    return "It's a mouse with cost = " + getCost() + ". Its name = " + getName() + ", " + NewOld; 
    } 
    
    static public double avgCost(){
    return commonCost/count; 
    } 
    } 
 
public class Klava extends Goods {
    
    private int kolKnopok; 
    static private int count = 0; 
    static private double commonCost = 0; 
    
    public Klava() {
    super();
    this.setCost(0); 
    this.setName("NULL"); 
    this.setkolKnopok(0); 
    } 
    
    public Klava(int cost, String name, int kolKnopok){ 
    this.setCost(cost); 
    this.setName(name); 
    this.setkolKnopok(kolKnopok); 
    count++; 
    commonCost += cost; 
    } 
    
    public void setkolKnopok(int kolKnopok){ 
    this.kolKnopok = kolKnopok; 
    } 
    public int getkolKnopok(){ 
    return kolKnopok; 
 } 
    
    public String toString(){ 
    return "It's a klava with cost = " + getCost() + ". Its name = " + getName() + " and has " + kolKnopok + " buttons"; 
    } 
    
    static public double avgCost(){
    return commonCost/count; 
    } 
    } 
 
Goods[] mas = new Goods[0];
    int count=0;
    
    public void add(Goods newGood){
    Goods[] mas1 = new Goods[count+1];
    for(int i=0; i<count; i++)
    mas1[i]=mas[i];
    mas1[count]=newGood;
    
    mas=mas1;
    count++;
    
    // al.add(newGood); 
    } 
    
 public int count(){ 
    return mas.length; 
    } 
    
    public Goods get(int index){ 
    return mas[index]; 
    } 
    
    public void sortByCost(){
    Arrays.sort(mas);
    // Collections.sort(al); 
 } 
    
 public void print(){ 
    for(int i=0; i<mas.length; i++) 
    System.out.println(mas[i].toString()); 
    } 
    }
Создать интерфейс Iтовар, декларирующий getXXX и setXXX методы для работы с полями базового класса, описывающего товар.
Создать интерфейсы наследник1 и наследник2, декларирующие getXXX и setXXX методы для работы с появившимися в наследниках базового класса «товар» полями.
Переделать контейнер так, чтобы он работал с объектами товара при помощи интерфейса Iтовар.
Разнести классы программы по двум разным пакетам. В первый пакет вынести классы и интерфейсы, описывающие объекты товара, и контейнер. Во второй пакет вынести класс с методом main.

Спасибо всем заранее!
1alex вне форума Ответить с цитированием
Старый 24.01.2018, 23:12   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Tasks.zip
Что-то такое. Не лучший вариант )))
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерфейсы Vlad14909 C# (си шарп) 1 27.12.2017 15:09
Интерфейсы Jaguar88 Помощь студентам 1 10.12.2017 10:35
Интерфейсы. Tison1251 Общие вопросы по Java, Java SE, Kotlin 3 07.12.2013 04:52
Интерфейсы Amgsys HQ Общие вопросы Delphi 2 14.08.2013 23:45
Интерфейсы MaZaHaKa Общие вопросы Delphi 1 30.11.2008 19:17