diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/KDTBE5_Java_Assignment3.iml b/.idea/KDTBE5_Java_Assignment3.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/.idea/KDTBE5_Java_Assignment3.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..4458232 --- /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..12e7bfa --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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/src/me/day05/practice/Practice01/Auth.java b/src/me/day05/practice/Practice01/Auth.java new file mode 100644 index 0000000..d0d94d9 --- /dev/null +++ b/src/me/day05/practice/Practice01/Auth.java @@ -0,0 +1,5 @@ +package me.day05.practice.Practice01; + +public enum Auth { + FingerPrint, Pattern, PIN, Face; +} diff --git a/src/me/day05/practice/Practice01/Company.java b/src/me/day05/practice/Practice01/Company.java new file mode 100644 index 0000000..6e94740 --- /dev/null +++ b/src/me/day05/practice/Practice01/Company.java @@ -0,0 +1,5 @@ +package me.day05.practice.Practice01; + +public enum Company { + SAMSUNG, LG, APPLE; +} diff --git a/src/me/day05/practice/Practice01/Electronic.java b/src/me/day05/practice/Practice01/Electronic.java new file mode 100644 index 0000000..daa04b1 --- /dev/null +++ b/src/me/day05/practice/Practice01/Electronic.java @@ -0,0 +1,53 @@ +package me.day05.practice.Practice01; + +import java.time.LocalDate; +import java.util.Arrays; + +public class Electronic { + private static int count = 0; + private final String productNo; + private final String modelName; + private final Company companyName; + private final LocalDate dateOfMade; + private final Auth[] authMethods; + + public Electronic(String modelName, Company companyName, LocalDate dateOfMade, Auth[] authMethods) { + count++; + this.productNo = LocalDate.now().toString().replace("-", "").substring(2) + String.format("%04d", count); + this.modelName = modelName; + this.companyName = companyName; + this.dateOfMade = dateOfMade; + this.authMethods = authMethods; + } + + public String getProductNo() { + return productNo; + } + + public String getModelName() { + return modelName; + } + + public Company getCompanyName() { + return companyName; + } + + public LocalDate getDateOfMade() { + return dateOfMade; + } + + public Auth[] getAuthMethods() { + return authMethods; + } + + @Override + public String toString() { + return "Electronic{" + + "productNo='" + productNo + '\'' + + ", modelName='" + modelName + '\'' + + ", companyName=" + companyName + + ", dateOfMade=" + dateOfMade + + ", authMethods=" + Arrays.toString(authMethods) + + '}'; + } +} \ No newline at end of file diff --git a/src/me/day05/practice/Practice01/User.java b/src/me/day05/practice/Practice01/User.java new file mode 100644 index 0000000..b261ea0 --- /dev/null +++ b/src/me/day05/practice/Practice01/User.java @@ -0,0 +1,92 @@ +package me.day05.practice.Practice01; + +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 final String registerTime; + + public User(String userId, String userPassword, String userPhoneNumber, String userEmail, String userBirthDate, Electronic[] electronicDevices) { + this.userId = userId; + this.userPassword = userPassword; + this.userPhoneNumber = userPhoneNumber; + this.userEmail = userEmail; + this.userBirthDate = userBirthDate; + this.electronicDevices = electronicDevices; + this.registerTime = String.valueOf(System.currentTimeMillis()); + } + + 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 Electronic[] getElectronicDevices() { + return electronicDevices; + } + + public void setElectronicDevices(Electronic[] electronicDevices) { + this.electronicDevices = electronicDevices; + } + + public String getRegisterTime() { + return registerTime; + } + + @Override + public int hashCode() { + return Objects.hash(userId, userPassword, userPhoneNumber, userEmail, userBirthDate, electronicDevices); + } + + @Override + public String toString() { + return "User{" + + "userId=" + userId + + ", userPassword='" + userPassword + '\'' + + ", userPhoneNumber='" + userPhoneNumber + '\'' + + ", userEmail='" + userEmail + '\'' + + ", userBirthDate='" + userBirthDate + '\'' + + ", electronicDevices=" + electronicDevices + + '}'; + } + +} \ No newline at end of file diff --git a/src/me/day05/practice/Practice02/Users.java b/src/me/day05/practice/Practice02/Users.java new file mode 100644 index 0000000..7f24347 --- /dev/null +++ b/src/me/day05/practice/Practice02/Users.java @@ -0,0 +1,68 @@ +package me.day05.practice.Practice02; + +import me.day05.practice.Practice01.User; + +import java.util.Arrays; + + +public class Users { + private static Users instance = null; + private User[] userList; + + private Users() { + userList = new User[0]; + } + + 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; + } + + @Override + public int hashCode() { + return Arrays.hashCode(userList); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + Users users = (Users) obj; + return Arrays.equals(userList, users.userList); + } + + @Override + public String toString() { + return "Users{" + + "userList=" + Arrays.toString(userList) + + '}'; + } + + public User findByUserId(String userId) { + for (User user : userList) { + if (user.getUserId().equals(userId)) { + return user; + } + } + return null; + } + public User Copy(User user) { + User userCopy = new User(user.getUserId(), user.getUserPassword(), user.getUserPhoneNumber(), + user.getUserEmail(), user.getUserBirthDate(), user.getElectronicDevices()); + return userCopy; + } +} \ No newline at end of file diff --git a/src/me/day05/practice/Practice03/Electronics.java b/src/me/day05/practice/Practice03/Electronics.java new file mode 100644 index 0000000..46f3c2a --- /dev/null +++ b/src/me/day05/practice/Practice03/Electronics.java @@ -0,0 +1,48 @@ +package me.day05.practice.Practice03; +import me.day05.practice.Practice01.Auth; +import me.day05.practice.Practice01.Company; +import me.day05.practice.Practice01.Electronic; + +import java.util.ArrayList; +import java.util.List; + +public class Electronics { + private static Electronics instance; + private Electronic[] electronicList; + + private Electronics() { + } + + public static Electronics getInstance() { + if (instance == null) { + instance = new Electronics(); + } + return instance; + } + public Electronic findByProductNo(String productNo) { + for (Electronic electronic : electronicList) { + if (electronic.getProductNo().equals(productNo)) { + return electronic; + } + } + return null; + } + public Electronic[] groupByCompanyName(Company company) { + List products = new ArrayList<>(); + for (Electronic product : electronicList) { + if (product.getCompanyName().equals(company)) { + products.add(product); + } + } + return products.toArray(new Electronic[0]); + } + public Electronic[] groupByAuthMethod(Auth authMethod) { + List result = new ArrayList<>(); + for (Electronic electronic : electronicList) { + if (electronic.getAuthMethods().equals(authMethod)) { + result.add(electronic); + } + } + return result.toArray(new Electronic[result.size()]); + } +} \ No newline at end of file