From af3b12e6896464f91ca6a65230481ec399b5614b Mon Sep 17 00:00:00 2001 From: GyeongMin Date: Mon, 17 Apr 2023 19:42:42 +0900 Subject: [PATCH] Java Assignment3 upload by GyeongminKang --- day05/src/Practice/Electronic.java | 110 ++++++++++++++++++++++++++++ day05/src/Practice/Electronics.java | 75 +++++++++++++++++++ day05/src/Practice/User.java | 109 +++++++++++++++++++++++++++ day05/src/Practice/Users.java | 86 ++++++++++++++++++++++ 4 files changed, 380 insertions(+) create mode 100644 day05/src/Practice/Electronic.java create mode 100644 day05/src/Practice/Electronics.java create mode 100644 day05/src/Practice/User.java create mode 100644 day05/src/Practice/Users.java diff --git a/day05/src/Practice/Electronic.java b/day05/src/Practice/Electronic.java new file mode 100644 index 0000000..93a89ab --- /dev/null +++ b/day05/src/Practice/Electronic.java @@ -0,0 +1,110 @@ +package Practice; + +import java.util.Arrays; +import java.util.Objects; + +public class Electronic { + private String productNo; + private String modelName; + public enum Company{ + C1("SAMSUNG"), C2("APPLE"), C3("LG"); + + private String companyName = null; + Company(String companyName){ + this.companyName = companyName; + } + + public String getCompanyName(){return companyName;} + } + private Company company; + private String dateOfMade; + public enum AuthMethod{ + AuthMethod1("FINGERPRINT"), + AuthMethod2("PATTERN"), + AuthMethod3("PIN"), + AuthMethod4("FACE"); + + private String authMethodName = null; + AuthMethod(String authMethodName){ + this.authMethodName = authMethodName; + } + public String getAuthMethodName() { + return authMethodName; + } + } + private AuthMethod[] authMethod; + + public Electronic(){} + + public Electronic(String productNo, String modelName, String dateOfMade, AuthMethod[] authMethod, Company company){ + this.productNo = productNo; + this.modelName = modelName; + this.dateOfMade = dateOfMade; + this.authMethod = authMethod; + this.company = company; + } + + public String getProductNo() { + return productNo; + } + + public void setProductNo(String productNo) { + this.productNo = productNo; + } + + public String getModelName() { + return modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + public String getDateOfMade() { + return dateOfMade; + } + + public void setDateOfMade(String dateOfMade) { + this.dateOfMade = dateOfMade; + } + + public AuthMethod[] getAuthMethod() { + return authMethod; + } + + public void setAuthMethod(AuthMethod[] authMethod) { + this.authMethod = authMethod; + } + + public Company getCompany() { + return company; + } + public void setCompany(Company company) { + this.company = company; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Electronic that = (Electronic) o; + return productNo == that.productNo && Objects.equals(modelName, that.modelName) && Objects.equals(dateOfMade, that.dateOfMade) && Arrays.equals(authMethod, that.authMethod); + } + + @Override + public int hashCode() { + int result = Objects.hash(productNo, modelName, dateOfMade); + result = 31 * result + Arrays.hashCode(authMethod); + return result; + } + + @Override + public String toString() { + return "Electronic{" + + "productNo=" + productNo + + ", modelName='" + modelName + '\'' + + ", dateOfMade='" + dateOfMade + '\'' + + ", authMethod=" + Arrays.toString(authMethod) + + '}'; + } +} diff --git a/day05/src/Practice/Electronics.java b/day05/src/Practice/Electronics.java new file mode 100644 index 0000000..7994d0b --- /dev/null +++ b/day05/src/Practice/Electronics.java @@ -0,0 +1,75 @@ +package Practice; + +import java.util.Arrays; + +public class Electronics { + private Electronic[] electronicList; + + //싱글톤 + private static Electronics electronics; + public static Electronics getInstance(){ + if(electronics == null){ + electronics = new Electronics(); + } + return electronics; + } + + //productNo으로 전자제품 찾기 + public Electronic findByProductNo(String productNo){ + for(int i = 0; i < electronicList.length; i++){ + if(electronicList[i].getProductNo().equals(productNo)){ + return electronicList[i]; + } + } + return null; + } + + //제조 회사로 찾아서 하나의 배열로 반환 + public Electronic[] groupByCompanyName(Electronic.Company company){ + Electronic[] ans = new Electronic[electronicList.length]; + for(int i = 0; i < electronicList.length; i++){ + if(electronicList[i].getCompany().equals(company)){ + ans[i] = electronicList[i]; + } + } + return ans; + } + + public Electronic[] groupByAutoMethod(Electronic.AuthMethod authMethod){ + Electronic[] ans = new Electronic[electronicList.length]; + for(int i = 0; i < electronicList.length; i++){ + if(electronicList[i].getAuthMethod()[i].getAuthMethodName() == authMethod.getAuthMethodName()){ + ans[i] = electronicList[i]; + } + } + return ans; + } + + public Electronic[] getElectronicList() { + return electronicList; + } + + public void setElectronicList(Electronic[] electronicList) { + this.electronicList = electronicList; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Electronics that = (Electronics) o; + return Arrays.equals(electronicList, that.electronicList); + } + + @Override + public int hashCode() { + return Arrays.hashCode(electronicList); + } + + @Override + public String toString() { + return "Electronics{" + + "electronicList=" + Arrays.toString(electronicList) + + '}'; + } +} diff --git a/day05/src/Practice/User.java b/day05/src/Practice/User.java new file mode 100644 index 0000000..31e3311 --- /dev/null +++ b/day05/src/Practice/User.java @@ -0,0 +1,109 @@ +package Practice; + +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 LocalDateTime registerTime; + + private Electronic[] electronicDevices; + + public User(){} + + public User(String userId, String userPassword, String userPhoneNumber, String userEmail, String userBirthDate, LocalDateTime registerTime, Electronic[] electronicDevices) { + this.userId = userId; + this.userPassword = userPassword; + this.userPhoneNumber = userPhoneNumber; + this.userEmail = userEmail; + this.userBirthDate = userBirthDate; + this.registerTime = registerTime; + this.electronicDevices = electronicDevices; + } + + 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 o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + User user = (User) o; + return userPhoneNumber == user.userPhoneNumber && Objects.equals(userId, user.userId) && Objects.equals(userPassword, user.userPassword) && Objects.equals(userEmail, user.userEmail) && Objects.equals(userBirthDate, user.userBirthDate) && 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 + '\'' + + ", registerTime=" + registerTime + + '}'; + } +} diff --git a/day05/src/Practice/Users.java b/day05/src/Practice/Users.java new file mode 100644 index 0000000..40d600b --- /dev/null +++ b/day05/src/Practice/Users.java @@ -0,0 +1,86 @@ +package Practice; + +import java.util.Arrays; + +public class Users { + private User[] userList; + private static Users users; + + private Users(){} + + private Users(User[] userList) { + this.userList = userList; + } + + //싱글톤 + public static Users getInstance(){ + if(users == null){ + users = new Users(); + } + return users; + } + + //userID로 회원 찾기 + public User findByUserId(String userID){ + for(int i = 0; i < userList.length; i++){ + if(userList[i].getUserId().equals(userID)){ + return userList[i]; + } + } + return null; + } + + //deepcopy + public User copy(User user){ + User copy = new User(); + if(user == null){ + return copy; + } + + copy = user; + copy.setUserId(user.getUserId()); + copy.setRegisterTime(user.getRegisterTime()); + copy.setUserBirthDate(user.getUserBirthDate()); + copy.setUserEmail(user.getUserEmail()); + copy.setUserPassword(user.getUserPassword()); + copy.setUserId(user.getUserId()); + + return copy; + } + + public User[] getUserList() { + return userList; + } + + public void setUserList(User[] userList) { + this.userList = userList; + } + + public static Users getUsers() { + return users; + } + + public static void setUsers(Users users) { + Users.users = users; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Users users = (Users) o; + return Arrays.equals(userList, users.userList); + } + + @Override + public int hashCode() { + return Arrays.hashCode(userList); + } + + @Override + public String toString() { + return "Users{" + + "userList=" + Arrays.toString(userList) + + '}'; + } +}