Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 27

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

30.01.2015, 06:08. Показов 1855. Ответов 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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru