diff --git a/Assignment3/.classpath b/Assignment3/.classpath new file mode 100644 index 0000000..f029363 --- /dev/null +++ b/Assignment3/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Assignment3/.gitignore b/Assignment3/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/Assignment3/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Assignment3/.project b/Assignment3/.project new file mode 100644 index 0000000..72f8601 --- /dev/null +++ b/Assignment3/.project @@ -0,0 +1,17 @@ + + + Assignment3 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Assignment3/.settings/org.eclipse.jdt.core.prefs b/Assignment3/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..062ed70 --- /dev/null +++ b/Assignment3/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=19 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=19 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=19 diff --git a/Assignment3/src/me/day05/practice/Practice01/AuthMethod.java b/Assignment3/src/me/day05/practice/Practice01/AuthMethod.java new file mode 100644 index 0000000..60795fd --- /dev/null +++ b/Assignment3/src/me/day05/practice/Practice01/AuthMethod.java @@ -0,0 +1,3 @@ +package me.day05.practice.Practice01; + +public enum AuthMethod { FINGERPRINT, PATTERN, PIN, FACE } //제품 본인인증 방법 \ No newline at end of file diff --git a/Assignment3/src/me/day05/practice/Practice01/Company.java b/Assignment3/src/me/day05/practice/Practice01/Company.java new file mode 100644 index 0000000..ef496a3 --- /dev/null +++ b/Assignment3/src/me/day05/practice/Practice01/Company.java @@ -0,0 +1,3 @@ +package me.day05.practice.Practice01; + +public enum Company {SAMSUNG, LG, APPLE } //제조 회사명 \ No newline at end of file diff --git a/Assignment3/src/me/day05/practice/Practice01/Electronic.java b/Assignment3/src/me/day05/practice/Practice01/Electronic.java new file mode 100644 index 0000000..17e804a --- /dev/null +++ b/Assignment3/src/me/day05/practice/Practice01/Electronic.java @@ -0,0 +1,91 @@ +package me.day05.practice.Practice01; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Objects; + +public class Electronic { + private String productNo; + private static int serialNum = 0; + private String modelName; + private Company companyName; + private String dateOfMade; + private AuthMethod[] authMethod; + + + public Electronic(){ + serialNum++; + productNo = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd")) + String.format("%04d",serialNum); + } + + public Electronic(String modelName, Company companyName, String dateOfMade, AuthMethod[] authMethod) { + serialNum++; + this.productNo = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd")) + String.format("%04d", serialNum); + this.modelName = modelName; + this.companyName = companyName; + this.dateOfMade = dateOfMade; + this.authMethod = authMethod; + + } + + @Override + public int hashCode() { + return Objects.hash(productNo, modelName, dateOfMade, companyName, authMethod); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof Electronic)) return false; + + Electronic electronic = (Electronic) obj; + return (this.productNo == electronic.productNo) || (this.modelName == electronic.modelName) + || (this.dateOfMade == electronic.dateOfMade) || (this.companyName == electronic.companyName) + || (this.authMethod.equals(electronic.authMethod)); + } + + @Override + public String toString() { + return "electronic{productNo:" + productNo + + ", modelName:" + modelName + + ", companyName:" + companyName + + ", dateOfMade:" + dateOfMade + + ", authMethod:" + Arrays.toString(authMethod) + "}"; + } + + + 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 void setCompanyName(Company companyName){ + this.companyName = companyName; + } + public Company getCompanyName(){ + return companyName; + } + + public AuthMethod[] getAuthMethod() { + return authMethod; + } + + public void setAuthMethod(AuthMethod[] authMethod) { + this.authMethod = authMethod; + } +} diff --git a/Assignment3/src/me/day05/practice/Practice01/User.java b/Assignment3/src/me/day05/practice/Practice01/User.java new file mode 100644 index 0000000..ad06017 --- /dev/null +++ b/Assignment3/src/me/day05/practice/Practice01/User.java @@ -0,0 +1,115 @@ +package me.day05.practice.Practice01; + +import java.time.LocalTime; +import java.util.Objects; + +public class User { + + private String userId; + private String userPassword; + private int userPhoneNumber; + private String userEmail; + private int userBirthDate; + private String[] electronicDevices; + public LocalTime registerTime; + + + public User(){ + registerTime = LocalTime.now(); + } + + public User(String userId, String userPassword, int userPhoneNumber, String userEmail, int userBirthDate, + String[] electronicDevices) { + this.userId = userId; + this.userPassword = userPassword; + this.userPhoneNumber = userPhoneNumber; + this.userEmail = userEmail; + this.userBirthDate = userBirthDate; + this.electronicDevices = electronicDevices; + this.registerTime = LocalTime.now(); + } + + + @Override + public int hashCode() { + return Objects.hash(userId, userPassword, userPhoneNumber, userEmail, userBirthDate, electronicDevices, + registerTime); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof User)) + return false; + + User user = (User) obj; + return (this.userId == user.userId) || (this.userPassword == user.userPassword) + || (this.userPhoneNumber == user.userPhoneNumber) || (this.userEmail == user.userEmail) + || (this.userBirthDate == user.userBirthDate) || (this.electronicDevices == user.electronicDevices) + || (this.registerTime == user.registerTime); + } + + @Override + public String toString() { + return "User{userId:" + userId + + ", userPassword:" + userPassword + + ", userPhonNumber:" + userPhoneNumber + + ", userEmail:" + userEmail + + ", userBirthDat:" + userBirthDate + + ", electronicDevice:" + electronicDevices + + ", 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 int getUserPhoneNumber() { + return userPhoneNumber; + } + + public void setUserPhoneNumber(int userPhoneNumber) { + this.userPhoneNumber = userPhoneNumber; + } + + public String getUserEmail() { + return userEmail; + } + + public void setUserEmail(String userEmail) { + this.userEmail = userEmail; + } + + public int getUserBirthDate() { + return userBirthDate; + } + + public void setUserBirthDate(int userBirthDate) { + this.userBirthDate = userBirthDate; + } + + public String[] getElectronicDevices() { + return electronicDevices; + } + + public void setElectronicDevices(String[] electronicDevices) { + this.electronicDevices = electronicDevices; + } + + public LocalTime getTime() { + return this.registerTime; + } +} diff --git a/Assignment3/src/me/day05/practice/Practice02/Users.java b/Assignment3/src/me/day05/practice/Practice02/Users.java new file mode 100644 index 0000000..242a03d --- /dev/null +++ b/Assignment3/src/me/day05/practice/Practice02/Users.java @@ -0,0 +1,60 @@ +package me.day05.practice.Practice02; + +import me.day05.practice.Practice01.User; + +import java.util.Arrays; +import java.util.Objects; + +public class Users { + + private User[] userList; + private static Users instance; + + private Users() {} + + public static Users getInstance() { + if(instance == null) instance = new Users(); + + return instance; + } + + User findByUserId(String userId) { + for(User user : userList) { + if(user.getUserId().equals(userId)) + return user; + } + return null; + } + + User copy(User user) { + User userCopy = new User(user.getUserId(), user.getUserPassword(), user.getUserPhoneNumber() + , user.getUserEmail(), user.getUserBirthDate(), user.getElectronicDevices()); + return userCopy; + } + + @Override + public int hashCode() { + return Objects.hash(userList); + } + + @Override + public boolean equals(Object obj) { + if(!(obj instanceof Users)) return false; + + Users list = (Users)obj; + return Arrays.equals(userList, list.userList); + } + + @Override + public String toString() { + return "{userList:" + Arrays.toString(userList) + "}"; + } + + public User[] getUserList() { + return userList; + } + + public void setUserList(User[] userList) { + this.userList = userList; + } +} diff --git a/Assignment3/src/me/day05/practice/Practice03/Electronics.java b/Assignment3/src/me/day05/practice/Practice03/Electronics.java new file mode 100644 index 0000000..5807b7d --- /dev/null +++ b/Assignment3/src/me/day05/practice/Practice03/Electronics.java @@ -0,0 +1,82 @@ +package me.day05.practice.Practice03; + +import me.day05.practice.Practice01.AuthMethod; +import me.day05.practice.Practice01.Company; +import me.day05.practice.Practice01.Electronic; + +import java.util.Arrays; +import java.util.Objects; + +public class Electronics { + + private Electronic[] electronicList; + private static Electronics instance; + + private Electronics() { + } + + private Electronics getInstance() { + if (!(instance == null)) return 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) { + Electronic[] companyOfProduct = new Electronic[electronicList.length]; + + int j = 0; + for (int i = 0; i < electronicList.length; i++) { + if (electronicList[i].getCompanyName().equals(company)){ + companyOfProduct[j] = electronicList[i]; + j++; + } + } + return companyOfProduct; + } + + public Electronic[] groupByAuthMethod(AuthMethod authMethod) { + Electronic[] authMethodOfProduct = new Electronic[electronicList.length]; + + int j = 0; + for (int i = 0; i < electronicList.length; i++) { + if (electronicList[i].getAuthMethod().equals(authMethod)){ + authMethodOfProduct[j] = electronicList[i]; + j++; + } + } + return authMethodOfProduct; + } + + @Override + public int hashCode() { + return Objects.hash(electronicList); + } + + @Override + public boolean equals(Object obj) { + if(!(obj instanceof Electronics)) return false; + + Electronics list = (Electronics) obj; + return Arrays.equals(this.electronicList, list.electronicList); + } + + @Override + public String toString() { + return "electronicList{" + Arrays.toString(electronicList) + "}"; + } + + public Electronic[] getElectronicList() { + return electronicList; + } + + public void setElectronicList(Electronic[] electronicList) { + this.electronicList = electronicList; + } +}