From d8d99aba6ef968924c25bd73ce7165a9fca1e64c Mon Sep 17 00:00:00 2001 From: khsrla9806 Date: Wed, 19 Apr 2023 00:31:39 +0900 Subject: [PATCH 1/9] Java Assignment3 upload by HoonSubKim --- .idea/.gitignore | 8 ++ .idea/KDTBE5_Java_Assignment3.iml | 9 ++ .idea/discord.xml | 7 + .idea/misc.xml | 6 + .idea/modules.xml | 9 ++ .idea/vcs.xml | 6 + day05assignment/day05assignment.iml | 11 ++ .../day05/practice/practice01/Electronic.java | 101 ++++++++++++++ .../me/day05/practice/practice01/User.java | 128 ++++++++++++++++++ .../practice01/constant/AuthMethod.java | 5 + .../practice/practice01/constant/Company.java | 5 + .../me/day05/practice/practice02/Users.java | 80 +++++++++++ .../practice/practice03/Electronics.java | 102 ++++++++++++++ .../practice/practice01/Electronic.class | Bin 0 -> 3346 bytes .../me/day05/practice/practice01/Test.class | Bin 0 -> 879 bytes .../me/day05/practice/practice01/User.class | Bin 0 -> 3844 bytes .../practice01/constant/AuthMethod.class | Bin 0 -> 1204 bytes .../practice01/constant/Company.class | Bin 0 -> 1128 bytes 18 files changed, 477 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/KDTBE5_Java_Assignment3.iml create mode 100644 .idea/discord.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 day05assignment/day05assignment.iml create mode 100644 day05assignment/src/me/day05/practice/practice01/Electronic.java create mode 100644 day05assignment/src/me/day05/practice/practice01/User.java create mode 100644 day05assignment/src/me/day05/practice/practice01/constant/AuthMethod.java create mode 100644 day05assignment/src/me/day05/practice/practice01/constant/Company.java create mode 100644 day05assignment/src/me/day05/practice/practice02/Users.java create mode 100644 day05assignment/src/me/day05/practice/practice03/Electronics.java create mode 100644 out/production/day05assignment/me/day05/practice/practice01/Electronic.class create mode 100644 out/production/day05assignment/me/day05/practice/practice01/Test.class create mode 100644 out/production/day05assignment/me/day05/practice/practice01/User.class create mode 100644 out/production/day05assignment/me/day05/practice/practice01/constant/AuthMethod.class create mode 100644 out/production/day05assignment/me/day05/practice/practice01/constant/Company.class diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/KDTBE5_Java_Assignment3.iml b/.idea/KDTBE5_Java_Assignment3.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/KDTBE5_Java_Assignment3.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..30bab2a --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..639900d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d0b4c67 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/day05assignment/day05assignment.iml b/day05assignment/day05assignment.iml new file mode 100644 index 0000000..e7b98ac --- /dev/null +++ b/day05assignment/day05assignment.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/day05assignment/src/me/day05/practice/practice01/Electronic.java b/day05assignment/src/me/day05/practice/practice01/Electronic.java new file mode 100644 index 0000000..67a30aa --- /dev/null +++ b/day05assignment/src/me/day05/practice/practice01/Electronic.java @@ -0,0 +1,101 @@ +package me.day05.practice.practice01; + +import me.day05.practice.practice01.constant.AuthMethod; +import me.day05.practice.practice01.constant.Company; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +public class Electronic { + private static int autoIncrementNumber = 0; + private String productNo; + private String modelName; + private Company companyName; + private String dateOfDate; + private AuthMethod[] authMethod; + + public Electronic(String productNo, + String modelName, + Company companyName, + String dateOfDate + ) { + this.productNo = this.generateProductNo(); + this.modelName = modelName; + this.companyName = companyName; + this.dateOfDate = dateOfDate; + this.authMethod = new AuthMethod[10]; + } + + private String generateProductNo() { + String id = String.format("%04d", ++autoIncrementNumber); + String generatedDate = LocalDate.now().toString().replace("-", "").substring(2); + return generatedDate + id; + } + + public String getProductNo() { + return productNo; + } + + public String getModelName() { + return modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public Company getCompanyName() { + return companyName; + } + + public void setCompanyName(Company companyName) { + this.companyName = companyName; + } + + public String getDateOfDate() { + return dateOfDate; + } + + public void setDateOfDate(String dateOfDate) { + this.dateOfDate = dateOfDate; + } + + public AuthMethod[] getAuthMethod() { + return authMethod; + } + public void setAuthMethod(AuthMethod[] authMethod) { + this.authMethod = authMethod; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || this.getClass() != obj.getClass()) return false; + + Electronic that = (Electronic) obj; + return Objects.equals(this.productNo, that.productNo); // Unique한 id 값을 가지고 있기 때문에 이렇게 작성 + } + + @Override + public int hashCode() { + return Objects.hash(productNo, + modelName, + companyName, + dateOfDate + ); + } + + @Override + public String toString() { + return "Electronic{" + + "productNo='" + productNo + "'" + + ", modelName='" + modelName + "'" + + ", companyName=" + companyName + + ", dateOfDate='" + dateOfDate + "'" + + ", authMethod=" + Arrays.toString(authMethod) + + '}'; + } +} diff --git a/day05assignment/src/me/day05/practice/practice01/User.java b/day05assignment/src/me/day05/practice/practice01/User.java new file mode 100644 index 0000000..70ead7e --- /dev/null +++ b/day05assignment/src/me/day05/practice/practice01/User.java @@ -0,0 +1,128 @@ +package me.day05.practice.practice01; + +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.Objects; + +public class User { + private String userId; + private String userPassword; + private String userPhoneNumber; + private String userEmail; + private String userBirthDate; + private Electronic[] electronicDevices; + private LocalDateTime registerTime; + + public User() { + this.electronicDevices = new Electronic[10]; + this.registerTime = LocalDateTime.now(); + } + public User(String userId, + String userPassword, + String userPhoneNumber, + String userEmail, + String userBirthDate + ) { + this(); + this.userId = userId; + this.userPassword = userPassword; + this.userPhoneNumber = userPhoneNumber; + this.userEmail = userEmail; + this.userBirthDate = userBirthDate; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserPassword() { + return userPassword; + } + + public void setUserPassword(String userPassword) { + this.userPassword = userPassword; + } + + public String getUserPhoneNumber() { + return userPhoneNumber; + } + + public void setUserPhoneNumber(String userPhoneNumber) { + this.userPhoneNumber = userPhoneNumber; + } + + public String getUserEmail() { + return userEmail; + } + + public void setUserEmail(String userEmail) { + this.userEmail = userEmail; + } + + public String getUserBirthDate() { + return userBirthDate; + } + + public void setUserBirthDate(String userBirthDate) { + this.userBirthDate = userBirthDate; + } + + public LocalDateTime getRegisterTime() { + return registerTime; + } + + public void setRegisterTime(LocalDateTime registerTime) { + this.registerTime = registerTime; + } + + public Electronic[] getElectronicDevices() { + return electronicDevices; + } + + public void setElectronicDevices(Electronic[] electronicDevices) { + this.electronicDevices = electronicDevices; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || this.getClass() != obj.getClass()) return false; + + User user = (User) obj; + + if (!Objects.equals(userId, user.userId)) return false; + if (!Objects.equals(userPassword, user.userPassword)) return false; + if (!Objects.equals(userPhoneNumber, user.userPhoneNumber)) return false; + if (!Objects.equals(userEmail, user.userEmail)) return false; + if (!Objects.equals(userBirthDate, user.userBirthDate)) return false; + return Objects.equals(registerTime, user.registerTime); + } + + @Override + public int hashCode() { + return Objects.hash(userId, + userPassword, + userPhoneNumber, + userEmail, + userBirthDate, + registerTime + ); + } + + @Override + public String toString() { + return "User{" + + "userId='" + userId + "'" + + ", userPassword='" + userPassword + "'" + + ", userPhoneNumber='" + userPhoneNumber + "'" + + ", userEmail='" + userEmail + "'" + + ", userBirthDate='" + userBirthDate + "'" + + ", electronicDevices=" + Arrays.toString(electronicDevices) + + ", registerTime=" + registerTime + + '}'; + } +} diff --git a/day05assignment/src/me/day05/practice/practice01/constant/AuthMethod.java b/day05assignment/src/me/day05/practice/practice01/constant/AuthMethod.java new file mode 100644 index 0000000..32efe46 --- /dev/null +++ b/day05assignment/src/me/day05/practice/practice01/constant/AuthMethod.java @@ -0,0 +1,5 @@ +package me.day05.practice.practice01.constant; + +public enum AuthMethod { + FINGER_PRINT, PATTERN, PIN, FACE; +} diff --git a/day05assignment/src/me/day05/practice/practice01/constant/Company.java b/day05assignment/src/me/day05/practice/practice01/constant/Company.java new file mode 100644 index 0000000..9f0f83b --- /dev/null +++ b/day05assignment/src/me/day05/practice/practice01/constant/Company.java @@ -0,0 +1,5 @@ +package me.day05.practice.practice01.constant; + +public enum Company { + SAMSUNG, LG, APPLE; +} diff --git a/day05assignment/src/me/day05/practice/practice02/Users.java b/day05assignment/src/me/day05/practice/practice02/Users.java new file mode 100644 index 0000000..3ea3f09 --- /dev/null +++ b/day05assignment/src/me/day05/practice/practice02/Users.java @@ -0,0 +1,80 @@ +package me.day05.practice.practice02; + +import me.day05.practice.practice01.User; + +import java.util.Arrays; + +public class Users { + private static Users instance; + private User[] userList; + private static final int DEFAULT_SIZE = 50; + + private Users() { + userList = new User[DEFAULT_SIZE]; + } + + public static Users getInstance() { + if (instance == null) { + instance = new Users(); + } + return instance; + } + + public User[] getUserList() { + return userList; + } + + public void setUserList(User[] userList) { + this.userList = userList; + } + + public User findByUserId(String userId) { + for (User user : userList) { + if (user.getUserId().equals(userId)) { + return user; + } + } + throw new IllegalArgumentException("찾는 " + userId + "는 존재하지 않습니다."); + } + + public static User copy(User original) { + User user = new User( + original.getUserId(), + original.getUserPassword(), + original.getUserPhoneNumber(), + original.getUserEmail(), + original.getUserBirthDate() + ); + user.setElectronicDevices(original.getElectronicDevices().clone()); + user.setRegisterTime(original.getRegisterTime()); + return user; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + + Users users = (Users) obj; + + if (userList.length != users.userList.length) return false; + for (int i = 0; i < users.userList.length; i++) { + if (!userList[i].equals(users.userList[i])) { + return false; + } + } + return true; + } + + @Override + public int hashCode() { + return Arrays.hashCode(userList); + } + + @Override + public String toString() { + return "Users{" + + "userList=" + Arrays.toString(userList) + + '}'; + } +} diff --git a/day05assignment/src/me/day05/practice/practice03/Electronics.java b/day05assignment/src/me/day05/practice/practice03/Electronics.java new file mode 100644 index 0000000..c924ca1 --- /dev/null +++ b/day05assignment/src/me/day05/practice/practice03/Electronics.java @@ -0,0 +1,102 @@ +package me.day05.practice.practice03; + +import me.day05.practice.practice01.Electronic; +import me.day05.practice.practice01.constant.AuthMethod; +import me.day05.practice.practice01.constant.Company; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Electronics { + private static Electronics instance; + private Electronic[] electronicList; + private static final int DEFAULT_SIZE = 50; + + private Electronics() { + this.electronicList = new Electronic[DEFAULT_SIZE]; + } + + public static Electronics getInstance() { + if (instance == null) { + instance = new Electronics(); + } + return instance; + } + + public Electronic[] getElectronicList() { + return electronicList; + } + + public void setElectronicList(Electronic[] electronicList) { + this.electronicList = electronicList; + } + + public Electronic findByProductNo(String productNo) { + for (Electronic electronic : electronicList) { + if (electronic.getProductNo().equals(productNo)) { + return electronic; + } + } + throw new IllegalArgumentException("찾는 " + productNo + "에 해당하는 제품은 존재하지 않습니다."); + } + + public Electronic[] groupByCompanyName(Company company) { + List electronics = new ArrayList<>(); + for (Electronic electronic : electronicList) { + if (electronic.getCompanyName() == company) { + electronics.add(electronic); + } + } + return listToElectronicArray(electronics); + } + + public Electronic[] groupByAuthMethod(AuthMethod authMethod) { + List electronics = new ArrayList<>(); + for (Electronic electronic : electronicList) { + for (AuthMethod method : electronic.getAuthMethod()) { + if (authMethod == method) { + electronics.add(electronic); + break; + } + } + } + return listToElectronicArray(electronics); + } + + private Electronic[] listToElectronicArray(List list) { + Electronic[] electronicArray = new Electronic[list.size()]; + for (int i = 0; i < electronicArray.length; i++) { + electronicArray[i] = list.get(i); + } + return electronicArray; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + + Electronics that = (Electronics) obj; + + if (that.electronicList.length != this.electronicList.length) return false; + for (int i = 0; i < electronicList.length; i++) { + if (!electronicList[i].equals(that.electronicList[i])) { + return false; + } + } + return true; + } + + @Override + public int hashCode() { + return Arrays.hashCode(electronicList); + } + + @Override + public String toString() { + return "Electronics{" + + "electronicList=" + Arrays.toString(electronicList) + + '}'; + } +} diff --git a/out/production/day05assignment/me/day05/practice/practice01/Electronic.class b/out/production/day05assignment/me/day05/practice/practice01/Electronic.class new file mode 100644 index 0000000000000000000000000000000000000000..30d6778f4d5f0453eee64706536cc2bae33a67e5 GIT binary patch literal 3346 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 xMnd~Rhm( zIubD&4WIp^jQ5rWM)b?tb` LOL$JU7+(AZUO@Vb literal 0 HcmV?d00001 From 98ba72c5b12d898406914f14e60ecc4c2582947d Mon Sep 17 00:00:00 2001 From: khsrla9806 Date: Thu, 27 Apr 2023 23:38:12 +0900 Subject: [PATCH 2/9] =?UTF-8?q?Refactor(Mentoring):=20=EB=B3=80=EC=88=98?= =?UTF-8?q?=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD=20autoMethod=20->=20?= =?UTF-8?q?authMethods?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../me/day05/practice/practice01/Electronic.java | 16 +++++++--------- .../day05/practice/practice03/Electronics.java | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/day05assignment/src/me/day05/practice/practice01/Electronic.java b/day05assignment/src/me/day05/practice/practice01/Electronic.java index 67a30aa..ae05528 100644 --- a/day05assignment/src/me/day05/practice/practice01/Electronic.java +++ b/day05assignment/src/me/day05/practice/practice01/Electronic.java @@ -4,9 +4,7 @@ import me.day05.practice.practice01.constant.Company; import java.time.LocalDate; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; import java.util.Objects; public class Electronic { @@ -15,7 +13,7 @@ public class Electronic { private String modelName; private Company companyName; private String dateOfDate; - private AuthMethod[] authMethod; + private AuthMethod[] authMethods; public Electronic(String productNo, String modelName, @@ -26,7 +24,7 @@ public Electronic(String productNo, this.modelName = modelName; this.companyName = companyName; this.dateOfDate = dateOfDate; - this.authMethod = new AuthMethod[10]; + this.authMethods = new AuthMethod[10]; } private String generateProductNo() { @@ -63,11 +61,11 @@ public void setDateOfDate(String dateOfDate) { this.dateOfDate = dateOfDate; } - public AuthMethod[] getAuthMethod() { - return authMethod; + public AuthMethod[] getAuthMethods() { + return authMethods; } - public void setAuthMethod(AuthMethod[] authMethod) { - this.authMethod = authMethod; + public void setAuthMethods(AuthMethod[] authMethods) { + this.authMethods = authMethods; } @Override @@ -95,7 +93,7 @@ public String toString() { ", modelName='" + modelName + "'" + ", companyName=" + companyName + ", dateOfDate='" + dateOfDate + "'" + - ", authMethod=" + Arrays.toString(authMethod) + + ", authMethod=" + Arrays.toString(authMethods) + '}'; } } diff --git a/day05assignment/src/me/day05/practice/practice03/Electronics.java b/day05assignment/src/me/day05/practice/practice03/Electronics.java index c924ca1..1048699 100644 --- a/day05assignment/src/me/day05/practice/practice03/Electronics.java +++ b/day05assignment/src/me/day05/practice/practice03/Electronics.java @@ -54,7 +54,7 @@ public Electronic[] groupByCompanyName(Company company) { public Electronic[] groupByAuthMethod(AuthMethod authMethod) { List electronics = new ArrayList<>(); for (Electronic electronic : electronicList) { - for (AuthMethod method : electronic.getAuthMethod()) { + for (AuthMethod method : electronic.getAuthMethods()) { if (authMethod == method) { electronics.add(electronic); break; From fca92c31b1ae52cefa13e78b1118f35f1038abab Mon Sep 17 00:00:00 2001 From: khsrla9806 Date: Thu, 27 Apr 2023 23:40:05 +0900 Subject: [PATCH 3/9] =?UTF-8?q?Refactor(Mentoring):=20static=20=EB=B3=80?= =?UTF-8?q?=EC=88=98=20=EC=A0=A4=20=EC=9C=84=EB=A1=9C=20=EC=98=AC=EB=A6=AC?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day05assignment/src/me/day05/practice/practice02/Users.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/day05assignment/src/me/day05/practice/practice02/Users.java b/day05assignment/src/me/day05/practice/practice02/Users.java index 3ea3f09..392d132 100644 --- a/day05assignment/src/me/day05/practice/practice02/Users.java +++ b/day05assignment/src/me/day05/practice/practice02/Users.java @@ -5,9 +5,9 @@ import java.util.Arrays; public class Users { + private static final int DEFAULT_SIZE = 50; private static Users instance; private User[] userList; - private static final int DEFAULT_SIZE = 50; private Users() { userList = new User[DEFAULT_SIZE]; From 3072627a0340be0a00d20d791ca4d675f46a686b Mon Sep 17 00:00:00 2001 From: khsrla9806 Date: Fri, 28 Apr 2023 00:28:17 +0900 Subject: [PATCH 4/9] =?UTF-8?q?Refactor(Mentoring):=20Electronic[]?= =?UTF-8?q?=EC=97=90=EC=84=9C=20stream=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EC=97=AC=20=EB=A6=AC=ED=8E=99=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../practice/practice03/Electronics.java | 41 ++++++------------- 1 file changed, 13 insertions(+), 28 deletions(-) diff --git a/day05assignment/src/me/day05/practice/practice03/Electronics.java b/day05assignment/src/me/day05/practice/practice03/Electronics.java index 1048699..ee22352 100644 --- a/day05assignment/src/me/day05/practice/practice03/Electronics.java +++ b/day05assignment/src/me/day05/practice/practice03/Electronics.java @@ -4,14 +4,13 @@ import me.day05.practice.practice01.constant.AuthMethod; import me.day05.practice.practice01.constant.Company; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; +import java.util.Objects; public class Electronics { + private static final int DEFAULT_SIZE = 50; private static Electronics instance; private Electronic[] electronicList; - private static final int DEFAULT_SIZE = 50; private Electronics() { this.electronicList = new Electronic[DEFAULT_SIZE]; @@ -42,34 +41,20 @@ public Electronic findByProductNo(String productNo) { } public Electronic[] groupByCompanyName(Company company) { - List electronics = new ArrayList<>(); - for (Electronic electronic : electronicList) { - if (electronic.getCompanyName() == company) { - electronics.add(electronic); - } - } - return listToElectronicArray(electronics); + return Arrays.stream(electronicList) + .filter(Objects::nonNull) + .filter(electronic -> (electronic.getCompanyName() == company) + ).toArray(Electronic[]::new); } public Electronic[] groupByAuthMethod(AuthMethod authMethod) { - List electronics = new ArrayList<>(); - for (Electronic electronic : electronicList) { - for (AuthMethod method : electronic.getAuthMethods()) { - if (authMethod == method) { - electronics.add(electronic); - break; - } - } - } - return listToElectronicArray(electronics); - } - - private Electronic[] listToElectronicArray(List list) { - Electronic[] electronicArray = new Electronic[list.size()]; - for (int i = 0; i < electronicArray.length; i++) { - electronicArray[i] = list.get(i); - } - return electronicArray; + return Arrays.stream(electronicList) + .filter(Objects::nonNull) + .filter(electronic -> + Arrays.stream(electronic.getAuthMethods()) + .filter(Objects::nonNull) + .anyMatch(method -> (method == authMethod)) + ).toArray(Electronic[]::new); } @Override From 68edb165bff6d1dbc7e46d0efa71b482beb60345 Mon Sep 17 00:00:00 2001 From: khsrla9806 Date: Wed, 3 May 2023 20:40:11 +0900 Subject: [PATCH 5/9] =?UTF-8?q?refactor:=20[feedback=20version]=20return?= =?UTF-8?q?=EA=B3=BC=20=EB=A1=9C=EC=A7=81=20=EB=B6=84=EB=A6=AC=ED=95=98?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/me/day05/practice/practice01/Electronic.java | 3 +++ day05assignment/src/me/day05/practice/practice01/User.java | 1 + day05assignment/src/me/day05/practice/practice02/Users.java | 3 +++ .../src/me/day05/practice/practice03/Electronics.java | 2 ++ 4 files changed, 9 insertions(+) diff --git a/day05assignment/src/me/day05/practice/practice01/Electronic.java b/day05assignment/src/me/day05/practice/practice01/Electronic.java index ae05528..65d853a 100644 --- a/day05assignment/src/me/day05/practice/practice01/Electronic.java +++ b/day05assignment/src/me/day05/practice/practice01/Electronic.java @@ -30,6 +30,7 @@ public Electronic(String productNo, private String generateProductNo() { String id = String.format("%04d", ++autoIncrementNumber); String generatedDate = LocalDate.now().toString().replace("-", "").substring(2); + return generatedDate + id; } @@ -64,6 +65,7 @@ public void setDateOfDate(String dateOfDate) { public AuthMethod[] getAuthMethods() { return authMethods; } + public void setAuthMethods(AuthMethod[] authMethods) { this.authMethods = authMethods; } @@ -74,6 +76,7 @@ public boolean equals(Object obj) { if (obj == null || this.getClass() != obj.getClass()) return false; Electronic that = (Electronic) obj; + return Objects.equals(this.productNo, that.productNo); // Unique한 id 값을 가지고 있기 때문에 이렇게 작성 } diff --git a/day05assignment/src/me/day05/practice/practice01/User.java b/day05assignment/src/me/day05/practice/practice01/User.java index 70ead7e..7a62853 100644 --- a/day05assignment/src/me/day05/practice/practice01/User.java +++ b/day05assignment/src/me/day05/practice/practice01/User.java @@ -99,6 +99,7 @@ public boolean equals(Object obj) { if (!Objects.equals(userPhoneNumber, user.userPhoneNumber)) return false; if (!Objects.equals(userEmail, user.userEmail)) return false; if (!Objects.equals(userBirthDate, user.userBirthDate)) return false; + return Objects.equals(registerTime, user.registerTime); } diff --git a/day05assignment/src/me/day05/practice/practice02/Users.java b/day05assignment/src/me/day05/practice/practice02/Users.java index 392d132..c882454 100644 --- a/day05assignment/src/me/day05/practice/practice02/Users.java +++ b/day05assignment/src/me/day05/practice/practice02/Users.java @@ -17,6 +17,7 @@ public static Users getInstance() { if (instance == null) { instance = new Users(); } + return instance; } @@ -47,6 +48,7 @@ public static User copy(User original) { ); user.setElectronicDevices(original.getElectronicDevices().clone()); user.setRegisterTime(original.getRegisterTime()); + return user; } @@ -63,6 +65,7 @@ public boolean equals(Object obj) { return false; } } + return true; } diff --git a/day05assignment/src/me/day05/practice/practice03/Electronics.java b/day05assignment/src/me/day05/practice/practice03/Electronics.java index ee22352..0dbf254 100644 --- a/day05assignment/src/me/day05/practice/practice03/Electronics.java +++ b/day05assignment/src/me/day05/practice/practice03/Electronics.java @@ -20,6 +20,7 @@ public static Electronics getInstance() { if (instance == null) { instance = new Electronics(); } + return instance; } @@ -70,6 +71,7 @@ public boolean equals(Object obj) { return false; } } + return true; } From 47183dc47f8f61c217dcff1120b0ace16b9f98c1 Mon Sep 17 00:00:00 2001 From: khsrla9806 Date: Wed, 3 May 2023 20:44:15 +0900 Subject: [PATCH 6/9] =?UTF-8?q?refactor:=20[feedback=20version]=20StringBu?= =?UTF-8?q?ilder=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/me/day05/practice/practice01/Electronic.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/day05assignment/src/me/day05/practice/practice01/Electronic.java b/day05assignment/src/me/day05/practice/practice01/Electronic.java index 65d853a..b5b1cf1 100644 --- a/day05assignment/src/me/day05/practice/practice01/Electronic.java +++ b/day05assignment/src/me/day05/practice/practice01/Electronic.java @@ -28,10 +28,11 @@ public Electronic(String productNo, } private String generateProductNo() { + StringBuilder builder = new StringBuilder(); String id = String.format("%04d", ++autoIncrementNumber); String generatedDate = LocalDate.now().toString().replace("-", "").substring(2); - - return generatedDate + id; + builder.append(generatedDate).append(id); + return builder.toString(); } public String getProductNo() { From 9c6479306e6c94b1bb3842e60c45ee99baa0393b Mon Sep 17 00:00:00 2001 From: khsrla9806 Date: Wed, 3 May 2023 20:45:25 +0900 Subject: [PATCH 7/9] =?UTF-8?q?refactor:=20[feedback=20version]=20equals?= =?UTF-8?q?=20=EC=9E=90=EB=8F=99=EC=99=84=EC=84=B1=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../day05/practice/practice01/Electronic.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/day05assignment/src/me/day05/practice/practice01/Electronic.java b/day05assignment/src/me/day05/practice/practice01/Electronic.java index b5b1cf1..6ac2b3b 100644 --- a/day05assignment/src/me/day05/practice/practice01/Electronic.java +++ b/day05assignment/src/me/day05/practice/practice01/Electronic.java @@ -72,13 +72,18 @@ public void setAuthMethods(AuthMethod[] authMethods) { } @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || this.getClass() != obj.getClass()) return false; - - Electronic that = (Electronic) obj; - - return Objects.equals(this.productNo, that.productNo); // Unique한 id 값을 가지고 있기 때문에 이렇게 작성 + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + Electronic that = (Electronic) o; + + if (!Objects.equals(productNo, that.productNo)) return false; + if (!Objects.equals(modelName, that.modelName)) return false; + if (companyName != that.companyName) return false; + if (!Objects.equals(dateOfDate, that.dateOfDate)) return false; + // Probably incorrect - comparing Object[] arrays with Arrays.equals + return Arrays.equals(authMethods, that.authMethods); } @Override From 8e927896c44a37cb8cb9ce43ffd9b311f9211f63 Mon Sep 17 00:00:00 2001 From: khsrla9806 Date: Wed, 3 May 2023 20:46:08 +0900 Subject: [PATCH 8/9] =?UTF-8?q?refactor:=20[feedback=20version]=20hashcode?= =?UTF-8?q?=20=20=EC=9E=90=EB=8F=99=EC=99=84=EC=84=B1=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/me/day05/practice/practice01/Electronic.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/day05assignment/src/me/day05/practice/practice01/Electronic.java b/day05assignment/src/me/day05/practice/practice01/Electronic.java index 6ac2b3b..5c26511 100644 --- a/day05assignment/src/me/day05/practice/practice01/Electronic.java +++ b/day05assignment/src/me/day05/practice/practice01/Electronic.java @@ -88,11 +88,12 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(productNo, - modelName, - companyName, - dateOfDate - ); + int result = productNo != null ? productNo.hashCode() : 0; + result = 31 * result + (modelName != null ? modelName.hashCode() : 0); + result = 31 * result + (companyName != null ? companyName.hashCode() : 0); + result = 31 * result + (dateOfDate != null ? dateOfDate.hashCode() : 0); + result = 31 * result + Arrays.hashCode(authMethods); + return result; } @Override From b7334adf84a2e077446d90d350d3877f1c925641 Mon Sep 17 00:00:00 2001 From: khsrla9806 Date: Wed, 3 May 2023 20:49:34 +0900 Subject: [PATCH 9/9] =?UTF-8?q?refactor:=20[feedback=20version]=20User=20?= =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=EC=83=9D=EC=84=B1=EC=9E=90=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day05assignment/src/me/day05/practice/practice01/User.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/day05assignment/src/me/day05/practice/practice01/User.java b/day05assignment/src/me/day05/practice/practice01/User.java index 7a62853..9c7446b 100644 --- a/day05assignment/src/me/day05/practice/practice01/User.java +++ b/day05assignment/src/me/day05/practice/practice01/User.java @@ -13,17 +13,14 @@ public class User { private Electronic[] electronicDevices; private LocalDateTime registerTime; - public User() { - this.electronicDevices = new Electronic[10]; - this.registerTime = LocalDateTime.now(); - } public User(String userId, String userPassword, String userPhoneNumber, String userEmail, String userBirthDate ) { - this(); + this.electronicDevices = new Electronic[10]; + this.registerTime = LocalDateTime.now(); this.userId = userId; this.userPassword = userPassword; this.userPhoneNumber = userPhoneNumber;