diff --git a/day05/AuthMethod.java b/day05/AuthMethod.java new file mode 100644 index 0000000..8c1c5e5 --- /dev/null +++ b/day05/AuthMethod.java @@ -0,0 +1,25 @@ +package me.day05; + +public enum AuthMethod { + + FINGERPRINT("지문인증", 1), + PATTERN("패턴인증", 2), + PIN("핀인증", 3), + FACE("얼굴인증", 4); + + private final String viewName; + private final int code; + + AuthMethod(String viewName, int code) { + this.viewName = viewName; + this.code = code; + } + + public String getViewName() { + return viewName; + } + + public int getCode() { + return code; + } +} diff --git a/day05/Company.java b/day05/Company.java new file mode 100644 index 0000000..09b6463 --- /dev/null +++ b/day05/Company.java @@ -0,0 +1,24 @@ +package me.day05; + +public enum Company { + + SAMSUNG("삼성",1), + LG("엘지",2), + APPLE("애플",3); + + private final String viewName; + private final int code; + + Company(String viewName, int code) { + this.viewName = viewName; + this.code = code; + } + + public String getViewName() { + return viewName; + } + + public int getCode() { + return code; + } +} diff --git a/day05/Electronic.java b/day05/Electronic.java new file mode 100644 index 0000000..137964f --- /dev/null +++ b/day05/Electronic.java @@ -0,0 +1,56 @@ +package me.day05; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Arrays; +import java.util.Objects; + +public class Electronic { + + private String productNo; + private String modelName; + private Company company; + private LocalDateTime dateOfMade; + AuthMethod[] authMethod; + + private static int AUTO_GEN = 0; + + Electronic() { + AUTO_GEN++; + dateOfMade = LocalDateTime.now(ZoneId.systemDefault()); + productNo = String.format("%02d", this.dateOfMade.getYear()) + + String.format("%02d", this.dateOfMade.getMonthValue()) + + String.format("%02d", this.dateOfMade.getDayOfMonth()) + + String.format("%04d", AUTO_GEN); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + Electronic electronic = (Electronic) obj; + return Objects.equals(productNo, electronic.productNo) + && Objects.equals(modelName, electronic.modelName) + && company == electronic.company + && Objects.equals(dateOfMade, electronic.dateOfMade) + && Arrays.equals(authMethod, electronic.authMethod); + } + + @Override + public int hashCode() { + int result = Objects.hash(productNo, modelName, company, dateOfMade); + result = 31 * result + Arrays.hashCode(authMethod); + return result; + } + + @Override + public String toString() { + return "Electronic{" + + "productNo='" + productNo + '\'' + + ", modelName='" + modelName + '\'' + + ", companyName=" + company + + ", dateOfMade=" + dateOfMade + + ", authMethod=" + Arrays.toString(authMethod) + + '}'; + } +} + diff --git a/day05/User.java b/day05/User.java new file mode 100644 index 0000000..6ad5b80 --- /dev/null +++ b/day05/User.java @@ -0,0 +1,122 @@ +package me.day05; + +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.ZoneId; +import java.util.Objects; + +public class User { + + private String userId; + private String userPassword; + private String userPhoneNumber; + private String userEmail; + private LocalDate userBirthDate; + private Electronic[] electronicDevices; + private LocalTime registerTime; + + User() { + registerTime = LocalTime.now(ZoneId.systemDefault()); + } + + public User(String userId, String userPassword) { + this(); + this.userId = userId; + this.userPassword = userPassword; + } + + public User(String userId, String userPassword, String userPhoneNumber, String userEmail, LocalDate userBirthDate, Electronic[] electronicDevices) { + this(); + this.userId = userId; + this.userPassword = userPassword; + this.userPhoneNumber = userPhoneNumber; + this.userEmail = userEmail; + this.userBirthDate = userBirthDate; + 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 LocalDate getUserBirthDate() { + return userBirthDate; + } + + public void setUserBirthDate(LocalDate userBirthDate) { + this.userBirthDate = userBirthDate; + } + + public Electronic[] getElectronicDevices() { + return electronicDevices; + } + + public void setElectronicDevices(Electronic[] electronicDevices) { + this.electronicDevices = electronicDevices; + } + + public LocalTime getRegisterTime() { + return registerTime; + } + + public void setRegisterTime(LocalTime registerTime) { + this.registerTime = registerTime; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + User user = (User) obj; + return Objects.equals(userId, user.userId) && Objects.equals(userPassword, user.userPassword) + && Objects.equals(userPhoneNumber, user.userPhoneNumber) + && Objects.equals(userEmail, user.userEmail) + && Objects.equals(userBirthDate, user.userBirthDate) + && Objects.equals(electronicDevices, user.electronicDevices); + } + + @Override + public int hashCode() { + return Objects.hash(userId, userPassword, userPhoneNumber, userEmail, userBirthDate, electronicDevices); + } + + @Override + public String toString() { + return "User{" + + "userId='" + userId + '\'' + + ", userPassword='" + userPassword + '\'' + + ", userEmail='" + userEmail + '\'' + + ", userBirthDate='" + userBirthDate + '\'' + + ", electronicDevices=" + electronicDevices + + '}'; + } + +} diff --git a/day05/Users.java b/day05/Users.java new file mode 100644 index 0000000..37678b5 --- /dev/null +++ b/day05/Users.java @@ -0,0 +1,31 @@ +package me.day05; + +import java.util.Arrays; + +public enum Users { + + INSTANCE; + + private User[] userList; + + public User findByUserId(String userId) { + for(int i = 0; i < userList.length; i++) { + if (userId.equals(userList[i].getUserId())) { + return userList[i]; + } + } + return null; + } + + public User Copy(User user) { + User copyUser = new User(); + copyUser.setUserId(user.getUserId()); + copyUser.setUserEmail(user.getUserEmail()); + copyUser.setUserPassword(user.getUserPassword()); + copyUser.setUserBirthDate(user.getUserBirthDate()); + copyUser.setUserPhoneNumber(user.getUserPhoneNumber()); + copyUser.setElectronicDevices(Arrays.copyOf(user.getElectronicDevices(), user.getElectronicDevices().length)); + return copyUser; + } + +}