0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 27

Классы, объекты. Наследование, инкапсуляция

30.01.2015, 06:08. Показов 1892. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решить задачу, Объектно-ориентированное программирование. С использованием на выбор: наследование, инкапсуляция, полиформизм. Желательно с комментариями, чтобы смогла разобраться.

""Картотека банка состоит из карточек клиентов, содержащих следующую информацию: фамилия, имя, вид операции (приход/расход), сумму. Вывести данные о клиенте, положившем на счет один раз наибольшую сумму и данные о тех клиентах, которые снимали за раз более 1000 рублей."

Буду очень благодарна!
Язык java.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2015, 06:08
Ответы с готовыми решениями:

Инкапсуляция, Полиморфизм, Наследование
import java.io.*; import java.util.*; public class Nasledovanie { public static void main(String args) throws Exception{ ...

лаба по теме ИНКАПСУЛЯЦИЯ И НАСЛЕДОВАНИЕ
Разработать классы на языке Java, представляющие собой простейшие плоские геометрические фигуры (круг, равнобедренный прямоугольный...

Инкапсуляция. Наследование. Полиморфизм. Не понимаю в чем моя ошибка
Само задание: Реализовать класс BytesConverter с полем bytes. В конструкторе присвоить bytes значение 0. Реализовать методы setBytes(int...

1
173 / 131 / 74
Регистрация: 04.12.2013
Сообщений: 552
30.01.2015, 14:59
Лучший ответ Сообщение было отмечено tatata как решение

Решение

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
package bank;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
 
public class Bank {
    
    private List<Client> clients; //контейнер, куда будем "складывать" всех клиентов
    
    Bank() {
        clients = new ArrayList<>();
    }
    
    void addNewClient(Client cl) {
        this.clients.add(cl);
    }
    
    void showInformation() {
        Map<Float, Client> sum = new HashMap<>();
        Client superClient = null;
        for (Client cl : clients) {
            float maxSum = 0;
             
            for (Map.Entry<Float, Boolean> entry : cl.getAllOpeartions()) {
                if (entry.getKey() > 1000 && maxSum < entry.getKey()) {
                    maxSum = entry.getKey();
                    superClient = cl;
                }
                if (!entry.getValue() && entry.getKey() > 1000) {
                    System.out.println(cl + " снимал за один раз сумму в размере: " + entry.getKey());
                }
            }
        }
        System.out.println("Самый крутой клиент: " + superClient);
        
    }
 
    
    public static void main(String[] args) {
        //создаем объекты (клиентов банка)
        Client cl1 = new Client("Евгений", "Шишкин");
        Client cl2 = new Client("Андрей", "Максимин");
        Client cl3 = new Client("Василий", "Пупкин");
        //Client cl4 = new Client("Иван", "Жидков");
        
        //Операции с банком
        cl1.addMoney(213.0f);
        cl1.addMoney(2100.10f);
        cl1.cashWithDrawal(1200.0f);
        cl2.addMoney(1100.0f);
        cl2.cashWithDrawal(730.0f);
        cl3.addMoney(4000.0f);
        cl3.addMoney(8000.0f);
        cl3.cashWithDrawal(5000.100f);
        
        //создаем банк и добавляем клиентов
        Bank bank = new Bank();
        bank.addNewClient(cl1);
        bank.addNewClient(cl2);
        bank.addNewClient(cl3);
       
        //вывод информации согласно задания
        bank.showInformation();
        
    }
    
}
 
class Client {
    
    //private - скроет данные от внешнего мира
    private CreditCard card; 
    private Map<Float, Boolean> operations; //Google в помощь
    
    Client(String name, String surname) {
        card = new CreditCard(name, surname);
        operations = new HashMap<>();
    }
    
    //вклад денег
    void addMoney(float value) {
        operations.put(value, true);
        card.addMoney(value);
    }
    //снятие денег
    void cashWithDrawal(float value) {
        operations.put(value, false);
        card.withdrawal(value);
    }
    
    //получение всех операций. Ключ - сумма, которую вносили/снимали, значение - тип операции
    Set<Entry<Float, Boolean>> getAllOpeartions() {
       return this.operations.entrySet(); 
    }
    
    //Перекроем методу класса Object
    @Override
    public String toString() {
        return card.getName() + " " + card.getSurname();
    }
}
 
class CreditCard {
    
    private String name;
    private String surname;
    private boolean isWithdrawal;
    private float sum;
    
    CreditCard(String name, String surname) {
        this.name = name;
        this.surname = surname;
    } 
    //методы get и set и есть инкапсуляция данных, таких как name, surname, 
    //isWithDrawal, sum. Этим четыре атрибуты доступны только внутри класса
    //по этому обращаемся мы к ним только через методы - принцип инкапсуляции данных
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public void setSurname(String surname) {
        this.surname = surname;
    }
 
    public void setWithdrawalOperationTo(boolean isWithdrawal) {
        this.isWithdrawal = isWithdrawal;
    }
 
    public void setSum(float sum) {
        this.sum = sum;
    }
 
    public String getSurname() {
        return surname;
    }
 
    public boolean isIsWithdrawalOperation() {
        return isWithdrawal;
    }
 
    public float getSum() {
        return sum;
    }
    
    public void addMoney(float value) {
        this.sum += value;
    }
    
    public void withdrawal(float value) {
        this.sum -= value;
    }  
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2015, 14:59
Помогаю со студенческими работами здесь

Классы и объекты
Здраствуйте, Форумчани помогите решить эту задачу на языке Java Создать класс типа - дата с полями: день (1-31), месяц (1-12), год (целое...

Классы и объекты
Подскажите пожалуйста,вопрос конечно может и глупый,но меня поставил в тупик. есть два варианта кода: 1. public class Red { ...

Классы и объекты
Как выполнить следующие задания: 1) Написать класс Round, задающий круг с указанными координатами центра, радиусом, а также свойствами,...

Классы и объекты
Создать класс типа - циклическая очередь. Методы получают элемент и вставляют элемент.

Классы, объекты, поля
В одном из учебников вычитал предложение: &quot;В java поля (fields) могут принадлежать классу или объекту&quot;. Не могу себе представить, что...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru