diff --git a/me/practice/Practice01/AuthMethod.java b/me/practice/Practice01/AuthMethod.java new file mode 100644 index 0000000..87b662f --- /dev/null +++ b/me/practice/Practice01/AuthMethod.java @@ -0,0 +1,5 @@ +package KDTBE5_Java_Assignment3.me.practice.Practice01; + +public enum AuthMethod { + 지문인증, 패턴인증, 핀인증,얼굴인증 +} diff --git a/me/practice/Practice01/Company.java b/me/practice/Practice01/Company.java new file mode 100644 index 0000000..812324e --- /dev/null +++ b/me/practice/Practice01/Company.java @@ -0,0 +1,5 @@ +package KDTBE5_Java_Assignment3.me.practice.Practice01; + +public enum Company { + SAMSUNG,LG,APPLE; +} diff --git a/me/practice/Practice01/Electronic.java b/me/practice/Practice01/Electronic.java new file mode 100644 index 0000000..573c9c2 --- /dev/null +++ b/me/practice/Practice01/Electronic.java @@ -0,0 +1,96 @@ +package KDTBE5_Java_Assignment3.me.practice.Practice01; + +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Objects; + +import static java.time.LocalDate.now; + +public class Electronic { + public static int registerNumber = 0; + private String productNo; + private Company companyName; + private String modelName; + private String dateOfMade; + private AuthMethod[] authMethod; + + public Electronic(Company companyName, String modelName, String dateOfMade, AuthMethod[] authMethod) { + this.productNo = setProductNo(); + this.companyName = companyName; + this.modelName = modelName; + this.dateOfMade = dateOfMade; + this.authMethod = authMethod; + } + + private String setProductNo() { + String productNo = now().format(DateTimeFormatter.ofPattern("yyMMdd"))+String.format("%04d",++Electronic.registerNumber); + return productNo; + } + + + public String getProductNo() { + return productNo; + } + + public void setProductNo(String productNo) { + this.productNo = productNo; + } + + public Company getCompany() { + return companyName; + } + + public void setCompany(Company companyName) { + this.companyName = companyName; + } + + 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; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Electronic that = (Electronic) o; + return Objects.equals(productNo, that.productNo) && companyName == that.companyName && Objects.equals(modelName, that.modelName) && Objects.equals(dateOfMade, that.dateOfMade) && Arrays.equals(authMethod, that.authMethod); + } + + @Override + public int hashCode() { + int result = Objects.hash(productNo, companyName, modelName, dateOfMade); + result = 31 * result + Arrays.hashCode(authMethod); + return result; + } + + @Override + public String toString() { + return "Electronic{" + + "productNo='" + productNo + '\'' + + ", companyName=" + companyName + + ", modelName='" + modelName + '\'' + + ", dateOfMade='" + dateOfMade + '\'' + + ", authMethod=" + Arrays.toString(authMethod) + + '}'; + } +} diff --git a/me/practice/Practice01/User.java b/me/practice/Practice01/User.java new file mode 100644 index 0000000..952d180 --- /dev/null +++ b/me/practice/Practice01/User.java @@ -0,0 +1,110 @@ +package KDTBE5_Java_Assignment3.me.practice.Practice01; + +import java.time.chrono.ChronoLocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Formatter; +import java.util.Objects; + +import static java.time.LocalDateTime.now; + +public class User { + private String userId; + private String userPassword; + private String userEmail; + private String userBirthDate; + private Electronic [] electronicDevices; + private String registerTime; + + public User() { + + } + + public User(String userId, String userPassword, String userEmail, String userBirthDate, Electronic[] electronicDevices) { + this.userId = userId; + this.userPassword = userPassword; + this.userEmail = userEmail; + this.userBirthDate = userBirthDate; + this.electronicDevices = electronicDevices; + this.registerTime = now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + } +// public User(String userId, String userPassword, String userEmail, String userBirthDate, Electronic[] electronicDevices,String registerTime) { +// this.userId = userId; +// this.userPassword = userPassword; +// this.userEmail = userEmail; +// this.userBirthDate = userBirthDate; +// this.electronicDevices = electronicDevices; +// this.registerTime = registerTime; +// } + + 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 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 String toString() { +// return "User{" + +// "userId='" + userId + '\'' + +// ", userPassword='" + userPassword + '\'' + +// ", userEmail='" + userEmail + '\'' + +// ", userBirthDate='" + userBirthDate + '\'' + +// ", electronicDevices=" + Arrays.toString(electronicDevices) + +// ", registerTime='" + registerTime + '\'' + +// '}'; +// } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + User user = (User) o; + return Objects.equals(userId, user.userId) && Objects.equals(userPassword, user.userPassword) && Objects.equals(userEmail, user.userEmail) && Objects.equals(userBirthDate, user.userBirthDate) && Arrays.equals(electronicDevices, user.electronicDevices) && Objects.equals(registerTime, user.registerTime); + } + + @Override + public int hashCode() { + int result = Objects.hash(userId, userPassword, userEmail, userBirthDate, registerTime); + result = 31 * result + Arrays.hashCode(electronicDevices); + return result; + } +} diff --git a/me/practice/Practice02/Users.java b/me/practice/Practice02/Users.java new file mode 100644 index 0000000..71f974b --- /dev/null +++ b/me/practice/Practice02/Users.java @@ -0,0 +1,65 @@ +package KDTBE5_Java_Assignment3.me.practice.Practice02; + +import KDTBE5_Java_Assignment3.me.practice.Practice01.User; + +import java.util.Arrays; + +public class Users { + private static final Users INSTANCE = new Users(); + public Users() { + } + + public static Users getINSTANCE() { + return INSTANCE; + } + + private User[] users; + + + public User[] getUsers() { + return users; + } + + public void setUsers(User[] users) { + this.users = users; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Users users1 = (Users) o; + return Arrays.equals(users, users1.users); + } + + @Override + public int hashCode() { + return Arrays.hashCode(users); + } + + @Override + public String toString() { + return "Users{" + + "users=" + Arrays.toString(users) + + '}'; + } + + public User findUserId(String userId) throws Exception { + for (User user: this.users) { + if(user.getUserId().equals(userId))return user; + } + throw new Exception("해당 유저 아이디를 가진 유저는 존재하지 않습니다."); + } + + + public User copy(User user){ + User clone = new User(); + String userId = new String(user.getUserId()); + clone.setUserId(userId); + clone.setUserPassword(user.getUserPassword()); + clone.setUserEmail(user.getUserEmail()); + clone.setUserBirthDate(user.getUserBirthDate()); + clone.setElectronicDevices(user.getElectronicDevices()); + return clone; + } +} diff --git a/me/practice/Practice03/Electronics.java b/me/practice/Practice03/Electronics.java new file mode 100644 index 0000000..ce4dfe2 --- /dev/null +++ b/me/practice/Practice03/Electronics.java @@ -0,0 +1,84 @@ +package KDTBE5_Java_Assignment3.me.practice.Practice03; + +import KDTBE5_Java_Assignment3.me.practice.Practice01.AuthMethod; +import KDTBE5_Java_Assignment3.me.practice.Practice01.Company; +import KDTBE5_Java_Assignment3.me.practice.Practice01.Electronic; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +public class Electronics { + private static final Electronics INSTANCE = new Electronics(); + + public Electronics() { + } + + public static Electronics getINSTANCE() { + return INSTANCE; + } + + private Electronic[] electronicList; + + 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 Objects.equals(INSTANCE, that.INSTANCE) && Arrays.equals(electronicList, that.electronicList); + } + + @Override + public int hashCode() { + int result = Objects.hash(INSTANCE); + result = 31 * result + Arrays.hashCode(electronicList); + return result; + } + + @Override + public String toString() { + return "Electronics{" + + "INSTANCE=" + INSTANCE + + ", electronicList=" + Arrays.toString(electronicList) + + '}'; + } + + public Electronic findByProductNo(String productNo) throws Exception { + for (Electronic electronic:this.electronicList + ) { + if(electronic.getProductNo().equals(productNo))return electronic; + } + throw new Exception("해당 생산번호를 가지는 기기는 없습니다."); + }; + + public Electronic[] groupByCompanyName(Company company){ + List electronics = new ArrayList(); + for (Electronic electronic:this.electronicList + ) { + if(electronic.getCompany() == company){ + electronics.add(electronic); + } + } + return electronics.toArray(new Electronic[electronics.size()]); + }; + + public Electronic[] groupByAuthMethod(AuthMethod authMethod){ + List electronics = new ArrayList(); + for (Electronic electronic:this.electronicList + ) { + if(Arrays.asList(electronic.getAuthMethod()).indexOf(authMethod)>-1){ + electronics.add(electronic); + } + } + return electronics.toArray(new Electronic[electronics.size()]); + }; +}