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

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

30.11.2019, 15:48. Показов 1077. Ответов 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
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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.11.2019, 15:48
Ответы с готовыми решениями:

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

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

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

4
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
30.11.2019, 15:53
ООП даже не пахнет, зачем на форум пришёл...
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
30.11.2019, 15:55
xXCopafumeXx, поиск по этой ветке тебя спасет. рез 500 это делали!
0
115 / 79 / 40
Регистрация: 18.12.2015
Сообщений: 192
30.11.2019, 22:37
Весь конвертер можно разбить на "мини-конвертеры" : из одной валюты в другую. И все эти "мини-конвертеры" написать в интерфейсе. Ну либо же написать один большой конвертер и опять же написать его в интерфейсе. Интерфейс реализуется классом, вот и вся задача. Ну и сеттеры-геттеры.
Код не самый красивый и довольно громоздок, но я старался

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
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
01.12.2019, 00:10
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2019, 00:10
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru