Input: array with size = 10 can be of one of two data types: int and double. Calculate:
- sum
- min/max
- max positive
- multiplication
- modulus of first and last element
- second largest element
As a result you should have methods with following names :
- sum(int array[]), sum(double[])
- min(int array[]), min(double[])
- max(int array[]), max(double[])
- maxPositive(int array[]), maxPositive(double array[]),
- multiplication (int array[]), multiplication (double[])
- modulus(int array[]), modulus(double[])
- secondLargest(int array[]), secondLargest(double[])
Continue with BANK example 2.1 Write method which withdraws money from account and takes commission 5% of the transaction. Print OK + commission + balance after withdrawal. Print NO is withdrawal is not possible.
Example
Input | Input |
---|---|
balance = 100 withdrawal = 10 |
balance = 100 withdrawal = 99 |
Output | Output |
OK 0.5 89.5 | NO |
You need to write method which withdraw money of particular account owner if he/she can. Print name + NO of withdrawal fs not possible and name + sum of withdrawal + balance after withdrawal in other case. Commission is 5% for all cases.
Example
Input | Input |
---|---|
int[] balances = {1200, 250, 2000, 500, 3200}; String[] ownerNames = {"Jane", "Ann", "Jack", "Oww", "Lane"}; String ownerName = Ann; double withdrawal = 100; |
int[] balances = {1200, 250, 2000, 500, 3200}; String[] ownerNames = {"Jane", "Ann", "Jack", "Oww", "Lane"}; String ownerName = Oww; double withdrawal = 490; |
Output | Output |
Ann 100 145 | Oww NO |
You need to write method which will fund (ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅) balance of particular user. Print name + balance after funding.
Input |
---|
int[] balances = {1200, 250, 2000, 500, 3200}; String[] ownerNames = {"Jane", "Ann", "Jack", "Oww", "Lane"}; String ownerName = Oww; double withdrawal = 100; |
Output |
Oww 600 |
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ sing ΠΊ ΠΊΠ»Π°ΡΡΡ Bird, ΠΏΠΎΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ΄ Π²ΡΠ²Π΅Π» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ:
I am walking
I am flying
I am singing
I am Bird
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Arithmetic Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ add, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° integer, ΠΊΠΎΡΠΎΡΠ°Ρ Π΅ΡΡΡ ΠΈΡ ΡΡΠΌΠΌΠΎΠΉ.
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ Adder, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Arithmetic. Π£ ΠΊΠ»Π°ΡΡΠ° Adder Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ check, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ 2 Π½ΠΎΠΌΠ΅ΡΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ Π°>=b ΠΈ false Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ .
Π‘ΠΈΠ³Π½Π°ΡΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
int add(Integer a, Integer b)
boolean check(Integer a, Integer b)
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ»Π°ΡΡ Course Ρ ΠΏΠΎΠ»ΡΠΌΠΈ:
Date startDate,
String name,
int hoursDuration,
String teacherName.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ 2 ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
startDate, name;
hourseDuration, name, teacherName.
ΠΠ»Π°ΡΡ Student Ρ ΠΏΠΎΠ»ΡΠΌΠΈ:
String firstName,
String lastName,
int group,
Course[] coursesTaken,
int age.
Π‘ 2 ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
firstName, lastName, group;
lastName, coursesTaken.
CollegeStudent ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ Student. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ:
String collegeName, int rating, long id.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ 3 ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°: 2 ΡΠ°ΠΊΠΈΡ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Student and ΠΎΠ΄ΠΈΠ½ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ - Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°.
Class SpecialStudent ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ CollegeStudent. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ:
long secretKey, String email.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ 3 ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°: 2 ΡΠ°ΠΊΠΈΡ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² CollegeStudent ΠΈ ΠΎΠ΄ΠΈΠ½ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ secretKey.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ get-, set-ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΈΡ private ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ ΠΠΠ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ 5 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Course. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ. Π£ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ 13 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ Solution.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ User ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ:
String name,
int balance,
int monthsOfEmployment,
String companyName,
int salary,
String currency.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ get-, set-ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ - Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
void paySalary() - Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π·Π°ΡΠ°Π±ΠΎΡΠ½ΡΡ ΠΏΠ»Π°ΡΡ ΠΊ Π±Π°Π»Π°Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
withdraw(int summ) - ΡΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π΅Π½ΡΠ³ΠΈ Ρ Π±Π°Π»Π°Π½ΡΠ° Ρ ΠΊΠΎΠΌΠΈΡΡΠΈΠ΅ΠΉ 5%, Π΅ΡΠ»ΠΈ ΡΡΠΌΠΌΠ° < 1000 ΠΈ ΠΊΠΎΠΌΠΈΡΡΠΈΠ΅ΠΉ 10% Π² Π΄ΡΡΠ³ΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
companyNameLength - Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ Π΄Π»ΠΈΠ½Ρ ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
monthIncreaser(int addMonth) - ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ monthsOfEmployment Π½Π° addMonth
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ: ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Bank ΠΈ 3 ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ: USBank, EUBank, ChinaBank.
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Bank Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΠ»Ρ:
long id
String bankCountry
Currency currency
int numberOfEmployees
double avrSalaryOfEmployee
long rating
long totalCapital
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ get-,set-ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ - Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ. ΠΠ΅ΡΠΎΠ΄Ρ:
abstract int getLimitOfWithdrawal()
abstract int getLimitOfFunding()
abstract int getMonthlyRate()
abstract int getCommission(int summ)
double moneyPaidMonthlyForSalary()
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ: Enum Currency.
Currency - ΡΡΠΎ Enum Ρ Π΄Π²ΡΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ: USD, EUR.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ:
ΠΠ»Π°ΡΡ User, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
-
USBank:
-
Π»ΠΈΠΌΠΈΡ ΡΠ½ΡΡΠΈΡ = 1000, Π΅ΡΠ»ΠΈ Π²Π°Π»ΡΡΠ° - USD ΠΈ 1200, Π΅ΡΠ»ΠΈ Π²Π°Π»ΡΡΠ° - EUR
-
Π»ΠΈΠΌΠΈΡ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ - 10000, Π΅ΡΠ»ΠΈ EUR, ΠΈ Π½Π΅Ρ Π»ΠΈΠΌΠΈΡΠ°, Π΅ΡΠ»ΠΈ USD
-
ΠΌΠ΅ΡΡΡΠ½Π°Ρ ΡΡΠ°Π²ΠΊΠ° - 1% Π½Π° USD ΠΈ 2% Π½Π° EUR
-
ΠΊΠΎΠΌΠΈΡΡΠΈΡ 5%, Π΅ΡΠ»ΠΈ USD ΠΈ Π΄ΠΎ 1000, 7%, Π΅ΡΠ»ΠΈ USD ΠΈ Π±ΠΎΠ»ΡΡΠ΅ 1000
-
6%, Π΅ΡΠ»ΠΈ EUR ΠΈ Π΄ΠΎ 1000 ΠΈ 8%, Π΅ΡΠ»ΠΈ EUR ΠΈ Π±ΠΎΠ»ΡΡΠ΅ 1000
-
EUBank:
-
Π»ΠΈΠΌΠΈΡ ΡΠ½ΡΡΠΈΡ = 2000, Π΅ΡΠ»ΠΈ Π²Π°Π»ΡΡΠ° - USD ΠΈ 2200, Π΅ΡΠ»ΠΈ EUR
-
Π»ΠΈΠΌΠΈΡ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ - 20000, Π΅ΡΠ»ΠΈ EUR ΠΈ 10000, Π΅ΡΠ»ΠΈ USD
-
ΠΌΠ΅ΡΡΡΠ½Π°Ρ ΡΡΠ°Π²ΠΊΠ° - 0% Π½Π° USD ΠΈ 1% Π½Π° EUR
-
ΠΊΠΎΠΌΠΈΡΡΠΈΡ 5%, Π΅ΡΠ»ΠΈ USD ΠΈ Π΄ΠΎ 1000, 7%, Π΅ΡΠ»ΠΈ USD ΠΈ Π±ΠΎΠ»ΡΡΠ΅ 1000
-
2%, Π΅ΡΠ»ΠΈ EUR ΠΈ Π΄ΠΎ 1000 ΠΈ 4%, Π΅ΡΠ»ΠΈ EUR ΠΈ Π±ΠΎΠ»ΡΡΠ΅ 1000
-
ChinaBank:
-
Π»ΠΈΠΌΠΈΡ ΡΠ½ΡΡΠΈΡ = 100, Π΅ΡΠ»ΠΈ Π²Π°Π»ΡΡΠ° - USD ΠΈ 150, Π΅ΡΠ»ΠΈ EUR
-
Π»ΠΈΠΌΠΈΡ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ - 5000, Π΅ΡΠ»ΠΈ EUR ΠΈ 10000, Π΅ΡΠ»ΠΈ USD
-
ΠΌΠ΅ΡΡΡΠ½Π°Ρ ΡΡΠ°Π²ΠΊΠ° - 1% Π½Π° USD ΠΈ 0% Π½Π° EUR
-
ΠΊΠΎΠΌΠΈΡΡΠΈΡ 3%, Π΅ΡΠ»ΠΈ USD ΠΈ Π΄ΠΎ 1000, 5%, Π΅ΡΠ»ΠΈ USD ΠΈ Π±ΠΎΠ»ΡΡΠ΅ 1000
-
10%, Π΅ΡΠ»ΠΈ EUR ΠΈ Π΄ΠΎ 1000 ΠΈ 11%, Π΅ΡΠ»ΠΈ EUR ΠΈ Π±ΠΎΠ»ΡΡΠ΅ 1000
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ: ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ BankSystem ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ BankSystemImpl.
Π ΠΊΠ»Π°ΡΡΠ΅ User Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ:
long id
String name
double balance
int monthsOfEmployment
String companyName
int salary
Bank bank
ΠΠ»Π°ΡΡ User Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ toString.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ: ΠΠ»Π°ΡΡ Main Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ main, Π³Π΄Π΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ 6 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° User (2 - USBank, 2 - EUBank, 2 - ChinaBank).
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ BankSystem Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ:
void withdrawOfUser(User user, int amount)
void fundUser(User user, int amount)
void transferMoney(User fromUser, User toUser, int amount)
void paySalary(User user)
ΠΈ Π΅Π³ΠΎ ΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡ.
You need to following structure: abstarct class Bank and three classes that extends it: USBank, EUBank, ChinaBank. Enum Currency. Class User that represents User of our Bank System. Interface BankSystem and its implementation BankSystemImpl.
Create Main class with main method, where you should create 6 Users: 2 of USBank, 2 of EUBank and 2 of ChinaBank. Run four different operations with every Userβs balance and print its objects to console.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΡΡΡ System, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΎΡΠ΅Π»ΡΡ Π΄Π»Ρ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² DataBase.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
- ΠΠ»Π°ΡΡ Room, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
- API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ 3 Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
- DAO ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
- Controller, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Main Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ main, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
!!! Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ UML Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄. !!!
ΠΠ»Π°ΡΡ Room Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ:
long id
int price
int persons
Date dateAvailableFrom
String hotelName
String cityName
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ get-,set-ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ - Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΡΡΡ System, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΎΡΠ΅Π»ΡΡ Π΄Π»Ρ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² DataBase.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
- ΠΠ»Π°ΡΡ Room, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
- API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ 3 Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
- DAO ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
- Controller, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Main Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ main, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
!!! Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ UML Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄. !!!
ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ equals ΠΈ hashCode (2 ΠΎΠ±ΡΠ΅ΠΊΡΡ Room ΡΠ°Π²Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Ρ price, persons ΠΈ cityName ΡΠ°Π²Π½Ρ).
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΡΡΡ System, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΎΡΠ΅Π»ΡΡ Π΄Π»Ρ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² DataBase.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
- ΠΠ»Π°ΡΡ Room, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
- API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ 3 Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
- DAO ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
- Controller, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Main Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ main, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
!!! Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ UML Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄. !!!
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Room[] findRooms(int price, int persons, String city, String hotel)
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΡΡΡ System, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΎΡΠ΅Π»ΡΡ Π΄Π»Ρ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² DataBase.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
- ΠΠ»Π°ΡΡ Room, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
- API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ 3 Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
- DAO ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
- Controller, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Main Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ main, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
!!! Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ UML Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄. !!!
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ 3 ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ API, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ:
- BookingComAPI,
- TripAdvisorAPI,
- GoogleAPI.
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Room[] rooms, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠΎΠ½ΡΡΡΠΊΡΠΎΡΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Room.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΡΡΡ System, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΎΡΠ΅Π»ΡΡ Π΄Π»Ρ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² DataBase.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
- ΠΠ»Π°ΡΡ Room, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
- API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ 3 Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
- DAO ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
- Controller, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Main Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ main, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
!!! Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ UML Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄. !!!
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ DAO ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ΅ΡΠΎΠ΄Ρ Π²ΡΠ²ΠΎΠ΄ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π°.
Room save(Room room)
boolean delete(Room room)
Room update(Room room)
Room findById(long id)
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΡΡΡ System, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΎΡΠ΅Π»ΡΡ Π΄Π»Ρ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² DataBase.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
- ΠΠ»Π°ΡΡ Room, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
- API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ 3 Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
- DAO ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
- Controller, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Main Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ main, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
!!! Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ UML Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄. !!!
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Controller, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ API apis[] = new API[3], ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° API. Π’Π°ΠΊΠΆΠ΅ Ρ Controller Π΅ΡΡΡ 2 ΠΌΠ΅ΡΠΎΠ΄Π°:
Room[] requestRooms(int price, int persons, String city, String hotel) -
ΠΈΡΠ΅Ρ Π²ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
Room[] check(API api1, API api2) -
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ
Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΄Π²Π΅ ΡΠ°Π·Π½ΡΠ΅ API.
ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ API Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°. ΠΠ°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠΎΡΠΌΠΈΡΡΡΡ Π½ΠΎΠ²ΡΡ DB.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΡΡΡ System, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΎΡΠ΅Π»ΡΡ Π΄Π»Ρ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² DataBase.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
- ΠΠ»Π°ΡΡ Room, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
- API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ 3 Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
- DAO ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
- Controller, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
Π’Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Main Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ main, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
!!! Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ UML Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ΄. !!!
Π ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΊΠ»Π°ΡΡΠ° Main ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Controller ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ 3 Π·Π°ΠΏΡΠΎΡΠ° Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π½ΠΎΠΌΠ΅ΡΠ°. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ 3 ΡΠ°Π·Π° Ρ ΡΠ°Π·Π½ΡΠΌΠΈ API, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.
Create ArraysUtils with following methods
sum(int array[])
min(int array[])
max(int array[])
maxPositive(int array[])
multiplication (int array[])
modulus(int array[])
secondLargest(int array[])
these should be just copied from your HW2.
In addition add new methods
int[] reverse(int[] array)
int[] findEvenElements(int[] array)
You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.
In HW2 use methods from your ArraysUtils.
You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.
Make sure nobody can inherit your ArraysUtils.
You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.
Create User class with fields
long id
String firstName
lastName
int salary
int balance
and constructor with all fields.
You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.
Create Ρlass UserUtils with following methods
User[] uniqueUsers(User[] users)
//users are equal when all their field are equal
User[] usersWithContitionalBalance(User[] users, int balance)
//userβs balance == balance
User[] paySalaryToUsers(User[] users)
long[] getUsersId(User[] users)
User[] deleteEmptyUsers(User[] users)
Make sure paySalaryToUsers and getUsersId methods canβt be overriden in other classes.
You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.
Create Main class with main method where you need to create some test users and demonstrate how every method from UserUtils work.
ΠΠ»Π°ΡΡ User Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΠ»Ρ:
long id
String firstName
String lastName
String city
int balance
ΠΠ»Π°ΡΡ Order:
long id
int price
Currency currency
String itemName
String shopIdentificator
User user
Π Main ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ 10 Π·Π°ΠΊΠ°Π·ΠΎΠ² Ρ 10 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π² List.
- ΠΎΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π·Π° ΡΠ΅Π½ΠΎΠΉ Π·Π°ΠΊΠ°Π·Π° ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ
- ΠΎΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π·Π° ΡΠ΅Π½ΠΎΠΉ Π·Π°ΠΊΠ°Π·Π° ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΈ Π·Π° Π³ΠΎΡΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
- ΠΎΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π·Π° Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π·Π°ΠΊΠ°Π·Π°, ΠΈ Π³ΠΎΡΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ (Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ):
- ΡΠ΄Π°Π»ΠΈΡΠ΅ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°
- ΡΠ΄Π°Π»ΠΈΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π³Π΄Π΅ ΡΠ΅Π½Π° ΠΌΠ΅Π½ΡΡΠ΅ 1500
- ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π½Π° 2 ΡΠΏΠΈΡΠΊΠ° - Π·Π°ΠΊΠ°Π·Ρ Π² Π΄ΠΎΠ»Π»Π°ΡΠ°Ρ ΠΈ Π² Π³ΡΠΈΠ²Π½Π°Ρ
- ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π½Π° ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΈΡΠΊΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π³ΠΎΡΠΎΠ΄ΠΎΠ² Π² User
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Main, Π³Π΄Π΅ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ 10 Π·Π°ΠΊΠ°Π·ΠΎΠ² Ρ 10 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π² TreeSet. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ 8 ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈ 2 Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΡΡ Π·Π°ΠΊΠ°Π·Π°.
- ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΡΠ΅Ρ Π·Π°ΠΊΠ°Π·, Π³Π΄Π΅ ΡΠ°ΠΌΠΈΠ»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ - βPetrovβ
- Π²ΡΠ²Π΅Π΄ΠΈΡΠ΅ Π·Π°ΠΊΠ°Π· Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ΅Π½ΠΎΠΉ, ΠΈΡΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Ρ-ΠΌΠ΅ΡΠΎΠ΄ - get
- ΡΠ΄Π°Π»ΠΈΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ, Π³Π΄Π΅ Π²Π°Π»ΡΡΠ° Π΄ΠΎΠ»Π»Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Iterator
ΠΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ (ΠΌΠ°ΡΡΠΈΠ²Ρ) Π΄Π»Ρ User Ρ ΠΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ 5 Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Ρ.
Π‘Π³Π΅Π½Π΅ΡΠΈΡΡΠΉΡΠ΅ Integer ΠΈ String ArrayList ΠΈ LinkedList Ρ 1000 ΠΈ 10000 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠ·ΠΌΠ΅ΡΡΡΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ Π²ΡΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ:
- add
- set
- get
- remove
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ AbstractDAO (T) Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ:
- List ---- out DB emulator
- T save(T)
- void delete(T)
- void deleteAll(List T)
- void saveAll(List T)
- List T getList()
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ (Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ):
- void daleteById(long id)
- T get(long id)
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ AbstractDAO (T) Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ:
- List - out DB emulator
- void deleteByld(long id)
- T get(long id)
Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ AbstractDAOImpl
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ UserDAO ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠΈΡΡΠ΅Ρ AbstractDAOImpl ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ
- User class:
- long id
- String name
ΠΡΠΈΠΌΠ΅Ρ:
UserDAO extends .. {
User save(User user) {
save(user);
return user;
}
}
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Ρ HW ΠΌΠΎΠ΄ΡΠ»Ρ 7 (User ΠΈ Order) ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Java 8 instruments
-
ΠΎΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π·Π° ΡΠ΅Π½ΠΎΠΉ Π·Π°ΠΊΠ°Π·Π° ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ
-
ΠΎΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π·Π° ΡΠ΅Π½ΠΎΠΉ Π·Π°ΠΊΠ°Π·Π° ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΈ Π·Π° Π³ΠΎΡΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
-
ΠΎΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π·Π° Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ²Π°ΡΠ°, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π·Π°ΠΊΠ°Π·Π°, ΠΈ Π³ΠΎΡΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
-
ΡΠ΄Π°Π»ΠΈΡΠ΅ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°
-
ΡΠ΄Π°Π»ΠΈΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π³Π΄Π΅ ΡΠ΅Π½Π° ΠΌΠ΅Π½ΡΡΠ΅ 1500
-
ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π½Π° 2 ΡΠΏΠΈΡΠΊΠ° - Π·Π°ΠΊΠ°Π·Ρ Π² Π΄ΠΎΠ»Π»Π°ΡΠ°Ρ ΠΈ Π² Π³ΡΠΈΠ²Π½Π°Ρ
-
ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π½Π° ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΈΡΠΊΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π³ΠΎΡΠΎΠ΄ΠΎΠ² Π² User
-
ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΡΠ΅Ρ Π·Π°ΠΊΠ°Π·, Π³Π΄Π΅ ΡΠ°ΠΌΠΈΠ»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ - βPetrovβ
-
ΡΠ΄Π°Π»ΠΈΡΠ΅ Π·Π°ΠΊΠ°Π·Ρ Π² USD
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
- Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ
- Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ»Ρ
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠΎΠ΄Π·Π°Π΄Π°ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Main ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ .
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Ρ main(), ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΊΠΈΠ΄ΡΠ²Π°Π΅Ρ (throws) ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Exception Π²Π½ΡΡΡΡ try-Π±Π»ΠΎΠΊΠ°. ΠΠ°Π΄Π°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (Exception) Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° String. ΠΠΎΠΉΠΌΠ°ΠΉΡΠ΅ (catch) ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ catch-Π±Π»ΠΎΠΊΠ° ΠΈ Π²ΡΠ²Π΅Π΄ΠΈΡΠ΅ String argument. ΠΠΎΠ±Π°Π²ΡΡΠ΅ finally-Π±Π»ΠΎΠΊ ΠΈ Π²ΡΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π»ΡΡ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ extends. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° String ΠΈ Ρ ΡΠ°Π½ΠΈΡ Π΅Π³ΠΎ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ°ΠΊ ΡΡΡΠ»ΠΊΡ (reference) Π½Π° String. ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΡΡΡΠΎΠΊΡ. Π‘ΠΎΠ·Π΄Π°ΡΡ try-catch-Π±Π»ΠΎΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΏΡΠ°ΠΆΠ½ΡΡΡΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΡΡΠ»ΠΊΡ (reference) Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π΅Π΅ ΠΊΠ°ΠΊ null. ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΠ΅Π· ΡΡΡ ΡΡΡΠ»ΠΊΡ. ΠΠΎΡΠΎΠΌ ΠΎΠ±Π΅ΡΠ½ΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² try-catch-Π±Π»ΠΎΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΉΠΌΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Ρ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ f() ΠΈ g(). Π g() ΠΊΠΈΠ½ΡΡΠ΅ (throw) ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ. Π f() Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ g(), ΠΏΠΎΠΉΠΌΠ°ΠΉΡΠ΅ Π΅Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ catch ΠΊΠΈΠ½ΡΡΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ). ΠΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π² main().
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΠΈ Π½ΠΎΠ²ΡΡ ΡΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΊΠΈΠ΄Π°ΡΡ Π²ΡΠ΅ ΡΡΠΈ ΠΈΠ· Π½ΠΈΡ . Π main() Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ catch-Π±Π»ΠΎΠΊ ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π»ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΡΡΠΈ ΡΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ»ΠΎΠ²Π° Π² ΡΠ°ΠΉΠ»Π΅ (File) ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ (String) Ρ Π·Π°ΠΌΠ΅Π½ΡΠ½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
String replacer(Map map)
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ»ΠΎΠ²Π° Π² ΡΠ°ΠΉΠ»Π΅ (File) ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
File fileContentReplacer(Map map)
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ»ΠΎΠ²Π° Π² ΡΠ°ΠΉΠ»Π΅ (File), ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΡΠ°ΠΉΠ»Π°.
File fileContentMerger(Map<String, String> map)
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ. ΠΡΠ²Π΅ΡΡΠΈ 0, Π΅ΡΠ»ΠΈ Π½Π΅Ρ. ΠΡΠ²Π΅ΡΡΠΈ Π½ΠΎΠΌΠ΅Ρ n, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΡΠΈΡΠ»Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠΉ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Π² ΡΠ°ΠΉΠ»Π΅.
int checkWord(String word)
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ try ΠΈ try-with-resources(Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ).