С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 30.11.2019
Сообщений: 1
1

Интерфейс к классу

30.11.2019, 15:48. Показов 970. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, я незнаю как создать интерфейс для своего кода. У меня есть код на конвертор валют, мне нужно создать для него интерфейс чтобы при запуске джарника он запускался и можно было конвертировать вальты. Вот мой код
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package CurrencyConverter;
import java.util.Scanner;
 
public class CurrencyConverter {
 
    public static void main(String[] args) {
        System.out.println("Введите число валюты которой хотите перевести.");
        boolean t = true;
        while(t) {
            System.out.println("1  = грн -> доллар");
            System.out.println("2  = грн -> эвро");
            System.out.println("3 = грн -> рубль");
            System.out.println("4 = доллар -> грн");
            System.out.println("5 = доллар -> эвро");
            System.out.println("6 = доллар -> рубль");
            System.out.println("7 = эвро -> доллар");
            System.out.println("8 = эвро -> грн");
            System.out.println("9 = эвро -> рубль");
            System.out.println("10 = рубль -> доллар");
            System.out.println("11 = рубль -> грн");
            System.out.println("12 = рубль -> эвро");
            double euro = 28.050;
            double dollar = 25.150;
            double rub = 0.3457;
              @SuppressWarnings("resource")
            Scanner scanner = new Scanner (System.in);
              int A = scanner.nextInt();
            System.out.println("Введите суму которую хотите перевести у валюту.");
          switch(A) {
          case 1:
               Scanner scanner1 = new Scanner (System.in);
              double A1 = scanner1.nextInt();
              System.out.println("Грн = " + A1 / dollar + " доллар" );
          t = false;
          break;
          case 2:
          Scanner scanner2 = new Scanner (System.in);
          double A2 = scanner2.nextInt();
          System.out.println("Грн = " + A2 / euro + " эвро"); 
          t = false;
          break;
          case 3:
              Scanner scanner3 = new Scanner (System.in);
          double A3 = scanner3.nextInt();
              System.out.println("Грн = " + A3 * rub + " рубль");
          t = false;
          break;
          case 4:
              Scanner scanner4 = new Scanner (System.in);
              double A4 = scanner4.nextInt();
              System.out.println("Доллар = " + A4 * dollar + " грн" );
              t = false;
          case 5:
              Scanner scanner5 = new Scanner (System.in);
              double A5 = scanner5.nextInt();
              System.out.println("Доллар " + A5 * dollar/euro + " эвро");
              t = false;
              break;
          case 6:
              Scanner scanner6 = new Scanner (System.in);
              double A6 = scanner6.nextInt();
              System.out.println("Доллар " + A6 / dollar/rub  + " рубль");
              t = false;
              break;
          case 7:
              Scanner scanner7 = new Scanner (System.in);
              double A7 = scanner7.nextInt();
              System.out.println("Эвро " + A7 * euro/dollar + " доллар");
              t = false;
              break;
          case 8: 
              Scanner scanner8 = new Scanner (System.in);
              double A8 = scanner8.nextInt();
              System.out.println("Эвро " + A8 * euro + " грн");
          case 9:
              Scanner scanner9 = new Scanner (System.in);
              double A9 = scanner9.nextInt();
                      System.out.println("Эвро " + A9 / rub + " рубль");
              t = false;
              break;
          case 10:
              Scanner scanner10 = new Scanner (System.in);
              double A10 = scanner10.nextInt();
              System.out.println("Рубль " + A10 / dollar + " доллар");
              t = false;
              break;
          case 11:
              Scanner scanner11 = new Scanner (System.in);
              double A11 = scanner11.nextInt();
              System.out.println("Рубль " + A11 / rub + " грн");
              t = false;
              break;
          case 12:
              Scanner scanner12 = new Scanner (System.in);
              double A12 = scanner12.nextInt();
              System.out.println("Рубль " + A12 * rub/euro + " Эвро");
              t = false;
              break;
          default:
          break;
        }}}}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2019, 15:48
Ответы с готовыми решениями:

Добавить новый интерфейс классу-наследнику
У меня есть using System; using System.Collections.Generic; using System.Linq; using...

Iptables, правила, перенаправляющие на интерфейс eth1 все пакеты, приходящие на интерфейс eth0
Добрый день, подскажите, пожалуйста, как Iptables написать правила, перенаправляющие на интерфейс...

Можно ли создать интерфейс, в котором один из методов будет возвращать класс, который реализует интерфейс
Можно ли создать интерфейс, в котором один из методов будет возвращать класс, который реализует...

База данных "учебный план специальности". GUI. Графический интерфейс. Пользовательский интерфейс
Всем привет. Свалилась на меня, значит, курсовая по прологу. Все бы ничего, да реализовать ее надо...

4
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
30.11.2019, 15:53 2
ООП даже не пахнет, зачем на форум пришёл...
0
2711 / 2024 / 502
Регистрация: 17.02.2014
Сообщений: 9,417
30.11.2019, 15:55 3
xXCopafumeXx, поиск по этой ветке тебя спасет. рез 500 это делали!
0
115 / 79 / 40
Регистрация: 18.12.2015
Сообщений: 192
30.11.2019, 22:37 4
Весь конвертер можно разбить на "мини-конвертеры" : из одной валюты в другую. И все эти "мини-конвертеры" написать в интерфейсе. Ну либо же написать один большой конвертер и опять же написать его в интерфейсе. Интерфейс реализуется классом, вот и вся задача. Ну и сеттеры-геттеры.
Код не самый красивый и довольно громоздок, но я старался

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
package com.company;
import java.util.Scanner;
public class HelloWorld {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner (System.in);
        Converter c1 = new Converter(Currency.Euro,300,To.Grn);
        c1.converter(c1.getCurrency(),c1.getMoney(),To.Dollars);
        c1.setMoney(1000);
        c1.getInfo();
        c1.converter(c1.getCurrency(),c1.getMoney(),To.Rub);
        System.out.println("Input currency, which you need convert: Euro, Dollars,Rub,Grn ");
        String value = scan.nextLine();
        System.out.println("In which currency do you need convert: Euro,Dollars,Rub, Grn");
        String to = scan.nextLine();
        System.out.println("How much money you need convert: ");
        double money = scan.nextDouble();
        Converter c2 = new Converter(Currency.valueOf(value),money,To.valueOf(to));
        c2.getInfo();
        c2.converter(c2.getCurrency(), money, c2.getTo());
    }
 
}
 
 
interface Helper
{
    public void converter(Currency currencyType,double money,To convertTo);
    public void getInfo();
}
 
class Converter implements Helper
{
    private double money;
    Currency currencyType;
    To convertTo;
    
    public Converter(Currency currencyType,double money, To convertTo)
    {
        this.currencyType = currencyType;
        this.money = money;
        this.convertTo = convertTo;
    }
 
    public void converter(Currency currencyType, double money, To convertTo) {
        switch(currencyType)
        {
        case Euro:
            switch(convertTo)
            {
            case Dollars:
                System.out.println(money + " " +currencyType.Euro+" in " + currencyType.Dollars + " = " +money*1.10 +"$");
                break;
            case Rub:
                System.out.println(money + " " +currencyType.Euro+" in " + currencyType.Rub + " = " +money*70.65 + " rub");
                break;
            case Grn:
                System.out.println(money + " " +currencyType.Euro+" in " + currencyType.Grn + " = " +money*26.34 + " grn");
                break;
            }
            break;
        case Dollars:
            switch(convertTo)
            {
            case Euro:
                System.out.println(money + " " +currencyType.Dollars+" in " + currencyType.Euro + " = " +money/1.10 +" eur");
                break;
            case Rub:
                System.out.println(money + " " +currencyType.Dollars+" in " + currencyType.Rub + " = " +money*64.30 + " rub");
                break;
            case Grn:
                System.out.println(money + " " +currencyType.Dollars+" in " + currencyType.Grn + " = " +money*23.91 + " grn");
                break;
            }
            break;
        case Rub:
            switch(convertTo)
            {
            case Euro:
                System.out.println(money + " " +currencyType.Rub+" in " + currencyType.Euro + " = " +money/70.65 +" eur");
                break;
            case Dollars:
                System.out.println(money + " " +currencyType.Rub+" in " + currencyType.Dollars + " = " +money/64.30 + " $");
                break;
            case Grn:
                System.out.println(money + " " +currencyType.Rub+" in " + currencyType.Grn + " = " +money*0.37 + " grn");
                break;
            }
            break;
        case Grn:
            switch(convertTo)
            {
            case Dollars:
                System.out.printf(money + " " +currencyType.Grn+" in " + currencyType.Dollars + " = " +money*0,042 +" $");
                break;
            case Rub:
                System.out.println(money + " " +currencyType.Grn+" in " + currencyType.Rub + " = " +money*2.69 + " rub");
                break;
            case Euro:
                System.out.println(money + " " +currencyType.Grn+" in " + currencyType.Euro + " = " +money*0.038 + " euro");
                break;
            }
            break;
    default: throw new IllegalArgumentException("Currency not found");
        }
    }
    
    public double getMoney()
    {
        return money;
    }
    
    public void setMoney(double money)
    {
        this.money = money;
    }
    
    public Currency getCurrency()
    {
        return currencyType;
    }
    
    public To getTo()
    {
        return convertTo;
    }
    
    public void setCurrency(Currency currencyType)
    {
        this.currencyType = currencyType;
    }
    
    public void setTo(To convertTo)
    {
        this.convertTo = convertTo;
    }
 
    @Override
    public void getInfo() {
        getMoney();
        getTo();
        getCurrency();
        System.out.println("Information about this operation: Currency for convert:"+ currencyType+" in: " +convertTo +" count: "+money);
        
    }
}
 
enum Currency
{
    Euro,
    Rub,
    Dollars,
    Grn
}
 
enum To
{
    Euro,
    Rub,
    Dollars,
    Grn
}
0
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
01.12.2019, 00:10 5
Auror, код легко сокращается
например, ваше узнаванием цепочки между валютами

Java
1
2
3
4
5
6
static double getDependence(Currency a, Currency b) {
    int index = b.ordinal() -
            (a.ordinal() == 0 || (b.ordinal() > a.ordinal() && a.ordinal() != 3) ? 1 : 0);
 
    return a.dependency[index];
}
Кликните здесь для просмотра всего текста
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
60
61
62
63
64
65
66
67
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner (System.in);
        Converter c1 = new Converter(Currency.Euro,300,Currency.Grn);
        c1.converter(c1.currencyType,c1.money,Currency.Dollars);
        c1.money = 1000;
        System.out.println(c1);
        c1.converter(c1.currencyType,c1.money,Currency.Rub);
        System.out.println(c1);
        System.out.println("Input currency, which you need convert: Euro, Dollars,Rub,Grn ");
        String value = scan.nextLine();
        System.out.println("In which currency do you need convert: Euro,Dollars,Rub, Grn");
        String to = scan.nextLine();
        System.out.println("How much money you need convert: ");
        double money = scan.nextDouble();
        Converter c2 = new Converter(Currency.valueOf(value),money,Currency.valueOf(to));
        System.out.println(c2);
        c2.converter(c2.currencyType, money, c2.convertTo);
    }
 
}
 
class Converter {
    double money;
    Currency currencyType;
    Currency convertTo;
 
    Converter(Currency currencyType,double money, Currency convertTo) {
        this.currencyType = currencyType;
        this.money = money;
        this.convertTo = convertTo;
    }
 
    void converter(Currency currencyType, double money, Currency convertTo) {
        System.out.println(money + " " + currencyType + " in " + convertTo + " = " + money * Currency.getDependence(currencyType, convertTo) + convertTo.flag);
    }
 
    @Override
    public String toString() {
        return "Information about this operation: Currency for convert:"+ currencyType+" in: " +convertTo +" count: "+money;
    }
}
 
enum Currency
{
    Euro("eur", 1.10, 70.65, 26.34),
    Dollars("$", 0.90909090909, 64.30, 23.91),
    Rub("rub", 0.01415428167, 0.01555209953, 0.37),
    Grn("grn", 0.042, 2.69, 0.038);
 
    String flag;
    double[] dependency;
 
    Currency(String flag, double... dependency) {
        this.flag = flag;
        this.dependency = dependency;
    }
 
    static double getDependence(Currency a, Currency b) {
        int index = b.ordinal() -
                (a.ordinal() == 0 || (b.ordinal() > a.ordinal() && a.ordinal() != 3) ? 1 : 0);
 
        return a.dependency[index];
    }
}


--
Геттеры / Сеттеры - зло

Добавлено через 1 час 5 минут
Немного поигрался (разобравшись что в main происходит)

Java
1
new Wallet(money, currency).convert(to).print();
Bash
1
2
3
4
5
6
===== CONVERT =====
300.0 Euro in Dollars = 330.0$
 
===== WALLET ======
Money: 330.0
Currency: Dollars
Кликните здесь для просмотра всего текста
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner (System.in);
 
        new Wallet(300, Currency.Euro).convert(Currency.Dollars).print();
        new Wallet(1000, Currency.Euro).convert(Currency.Rub).print();
 
        System.out.println("Input currency, in Wallet: Euro, Dollars,Rub,Grn ");
        String currency = scan.nextLine();
        System.out.println("How much money in wallet: ");
        double money = scan.nextDouble();
        System.out.println("Currency to convert: Euro,Dollars,Rub, Grn");
 
        new Wallet(money, Currency.valueOf(currency)).convert(Currency.valueOf(scan.nextLine())).print();
    }
}
 
class Wallet {
    double money;
    Currency currency;
 
    Wallet(double money, Currency currency) {
        this.money = money;
        this.currency = currency;
    }
 
    Wallet(Wallet wallet) {
        this.money = wallet.money;
        this.currency = wallet.currency;
    }
 
    Wallet convert(Currency convertTo) {
        Wallet oldWallet = new Wallet(this);
 
        this.money *= currency.getDependence(convertTo);
        this.currency = convertTo;
 
        System.out.println("===== CONVERT =====\n" + oldWallet.money + " " + oldWallet.currency + " in " + convertTo + " = " + this.money + convertTo.flag + "\n");
 
        return this;
    }
 
    void print() {
        System.out.println(this);
    }
 
    @Override
    public String toString() {
        return "===== WALLET ======\nMoney: " + money + "\nCurrency: " + currency + "\n";
    }
}
 
enum Currency {
    Euro("eur", 1.10, 70.65, 26.34),
    Dollars("$", 0.90909090909, 64.30, 23.91),
    Rub("rub", 0.01415428167, 0.01555209953, 0.37),
    Grn("grn", 0.042, 2.69, 0.038);
 
    String flag;
    double[] dependency;
 
    Currency(String flag, double... dependency) {
        this.flag = flag;
        this.dependency = dependency;
    }
 
    double getDependence(Currency a) {
        int index = a.ordinal() -
                (ordinal() == 0 || (a.ordinal() > ordinal() && ordinal() != dependency.length) ? 1 : 0);
 
        return dependency[index];
    }
}
1
01.12.2019, 00:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2019, 00:10
Помогаю со студенческими работами здесь

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

обратиться к классу
есть класс producer класс server класс consumer все работают в разных потоках producer...

Добавление к классу
Всем привет. Есть ли в делфи возможность выбрав пункт меню добавить к классу новые методы,...

Доступ к классу
Здраствуйте, недавно начал изучать as 3.0, не понимаю некоторых его особенностей. Подскажите,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru