From 2e673d8197d02ef9d92ad2a98b654763a69a6707 Mon Sep 17 00:00:00 2001 From: sdfgx123 Date: Mon, 17 Apr 2023 21:48:38 +0900 Subject: [PATCH] java assignment third uploaded --- .../day05/practice/practice01/AuthMethod.java | 5 + .../practice/practice01/CompanyName.java | 5 + .../day05/practice/practice01/Electronic.java | 111 +++++++++++++++ .../me/day05/practice/practice01/User.java | 128 ++++++++++++++++++ .../me/day05/practice/practice02/Users.java | 69 ++++++++++ .../practice/practice03/Electronics.java | 87 ++++++++++++ 6 files changed, 405 insertions(+) create mode 100644 java-assignment-3/src/me/day05/practice/practice01/AuthMethod.java create mode 100644 java-assignment-3/src/me/day05/practice/practice01/CompanyName.java create mode 100644 java-assignment-3/src/me/day05/practice/practice01/Electronic.java create mode 100644 java-assignment-3/src/me/day05/practice/practice01/User.java create mode 100644 java-assignment-3/src/me/day05/practice/practice02/Users.java create mode 100644 java-assignment-3/src/me/day05/practice/practice03/Electronics.java diff --git a/java-assignment-3/src/me/day05/practice/practice01/AuthMethod.java b/java-assignment-3/src/me/day05/practice/practice01/AuthMethod.java new file mode 100644 index 0000000..c9cb097 --- /dev/null +++ b/java-assignment-3/src/me/day05/practice/practice01/AuthMethod.java @@ -0,0 +1,5 @@ +package me.day05.practice.practice01; + +public enum AuthMethod { + FINGERPRINT, PATTERN, PIN, FACE; +} diff --git a/java-assignment-3/src/me/day05/practice/practice01/CompanyName.java b/java-assignment-3/src/me/day05/practice/practice01/CompanyName.java new file mode 100644 index 0000000..6919e3d --- /dev/null +++ b/java-assignment-3/src/me/day05/practice/practice01/CompanyName.java @@ -0,0 +1,5 @@ +package me.day05.practice.practice01; + +public enum CompanyName { + SAMSUNG, LG, APPLE; +} diff --git a/java-assignment-3/src/me/day05/practice/practice01/Electronic.java b/java-assignment-3/src/me/day05/practice/practice01/Electronic.java new file mode 100644 index 0000000..fead365 --- /dev/null +++ b/java-assignment-3/src/me/day05/practice/practice01/Electronic.java @@ -0,0 +1,111 @@ +package me.day05.practice.practice01; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Date; +import java.util.Objects; + +public class Electronic { + private static int sequence; + private String productNo; + private String modelName; + private CompanyName companyName; + private LocalDate dateOfMade; + private AuthMethod[] authMethods; + + public Electronic(String modelName, CompanyName companyName, AuthMethod[] authMethods) { + this.productNo = String.format("%s%04d", LocalDate.now().toString().replaceAll("-", ""), ++sequence); + this.modelName = modelName; + this.companyName = companyName; + this.dateOfMade = LocalDate.now(); + this.authMethods = authMethods; + } + + public static int getSequence() { + return sequence; + } + + public static void setSequence(int sequence) { + Electronic.sequence = sequence; + } + + 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 CompanyName getCompanyName() { + return companyName; + } + + public void setCompanyName(CompanyName companyName) { + this.companyName = companyName; + } + + public LocalDate getDateOfMade() { + return dateOfMade; + } + + public void setDateOfMade(LocalDate dateOfMade) { + this.dateOfMade = dateOfMade; + } + + public AuthMethod[] getAuthMethods() { + return authMethods; + } + + public void setAuthMethods(AuthMethod[] authMethods) { + this.authMethods = authMethods; + } + + + + public static void main(String[] args) { + Electronic e1 = new Electronic("test01", CompanyName.SAMSUNG, new AuthMethod[] {AuthMethod.PATTERN, AuthMethod.FINGERPRINT}); + Electronic e2 = new Electronic("test01", CompanyName.SAMSUNG, new AuthMethod[] {AuthMethod.PATTERN, AuthMethod.FINGERPRINT}); + System.out.println(e1.productNo); + System.out.println(e2.productNo); + System.out.println(sequence); + System.out.println("e1 hashCode : " + e1.hashCode()); + System.out.println("e1 toString : " + e1.toString()); + System.out.println("success"); + } + + @Override + public String toString() { + return "Electronic [productNo=" + productNo + ", modelName=" + modelName + ", companyName=" + companyName + + ", dateOfMade=" + dateOfMade + ", authMethods=" + Arrays.toString(authMethods) + "]"; + } + + @Override + public int hashCode() { + return Objects.hash(productNo, modelName, companyName, dateOfMade, Arrays.hashCode(authMethods)); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof Electronic)) { + return false; + } + Electronic other = (Electronic) obj; + return Objects.equals(productNo, other.productNo) && Objects.equals(modelName, other.modelName) + && companyName == other.companyName && Objects.equals(dateOfMade, other.dateOfMade) + && Arrays.equals(authMethods, other.authMethods); + } + +} diff --git a/java-assignment-3/src/me/day05/practice/practice01/User.java b/java-assignment-3/src/me/day05/practice/practice01/User.java new file mode 100644 index 0000000..de3363d --- /dev/null +++ b/java-assignment-3/src/me/day05/practice/practice01/User.java @@ -0,0 +1,128 @@ +package me.day05.practice.practice01; + +import java.sql.Timestamp; +import java.time.LocalDate; +import java.util.ArrayList; + +public class User { + + private String userId; + private String userPassword; + private int userPhoneNumber; + private String userEmail; + private int userBirthDate; + private ArrayList electronicDevices; + private LocalDate registerTime; + + public User(String userId, String userPassword, int userPhoneNumber, String userEmail, int userBirthDate, ArrayList electronicDevices) { + this.userId = userId; + this.userPassword = userPassword; + this.userPhoneNumber = userPhoneNumber; + this.userEmail = userEmail; + this.userBirthDate = userBirthDate; + this.electronicDevices = electronicDevices; + this.registerTime = LocalDate.now(); + } + + // toString + @Override + public String toString() { + return "User{" + + "userId='" + userId + '\'' + + ", userPassword='" + userPassword + '\'' + + ", userPhoneNumber=" + userPhoneNumber + + ", userEmail='" + userEmail + '\'' + + ", userBirthDate=" + userBirthDate + + ", electronicDevices=" + electronicDevices + + ", registerTime=" + registerTime + + '}'; + } + + // hashCode + @Override + public int hashCode() { + int result = 17; + result = 31 * result + userId.hashCode(); + result = 31 * result + userPassword.hashCode(); + result = 31 * result + Integer.hashCode(userPhoneNumber); + result = 31 * result + userEmail.hashCode(); + result = 31 * result + Integer.hashCode(userBirthDate); + result = 31 * result + electronicDevices.hashCode(); + result = 31 * result + registerTime.hashCode(); + return result; + } + + // equals + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + User user = (User) o; + + if (userPhoneNumber != user.userPhoneNumber) return false; + if (userBirthDate != user.userBirthDate) return false; + if (!userId.equals(user.userId)) return false; + if (!userPassword.equals(user.userPassword)) return false; + if (!userEmail.equals(user.userEmail)) return false; + if (!electronicDevices.equals(user.electronicDevices)) return false; + return registerTime.equals(user.registerTime); + } + + // getter & setter + 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 ArrayList getElectronicDevices() { + return electronicDevices; + } + + public void setElectronicDevices(ArrayList electronicDevices) { + this.electronicDevices = electronicDevices; + } + + public LocalDate getRegisterTime() { + return registerTime; + } + + public void setRegisterTime(LocalDate registerTime) { + this.registerTime = registerTime; + } +} diff --git a/java-assignment-3/src/me/day05/practice/practice02/Users.java b/java-assignment-3/src/me/day05/practice/practice02/Users.java new file mode 100644 index 0000000..5f47620 --- /dev/null +++ b/java-assignment-3/src/me/day05/practice/practice02/Users.java @@ -0,0 +1,69 @@ +package me.day05.practice.practice02; + +import me.day05.practice.practice01.User; + +import java.util.ArrayList; +import java.util.Arrays; + +public class Users { + private static Users instance = null; + private User[] userList; + + private Users() { + userList = new User[10]; + } + + public static Users getInstance() { + if (instance==null) { + instance = new Users(); + } + return instance; + } + + @Override + public int hashCode() { + return Arrays.hashCode(userList); + } + + @Override + public String toString() { + return "Users{" + + "userList=" + Arrays.toString(userList) + + '}'; + } + + @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); + } + + public User[] getUserList() { + return userList; + } + + public void setUserList(User[] userList) { + this.userList = userList; + } + + public User findByUserId(String userId) { + for (User user : userList) { + if (user.getUserId().equals(userId)) return user; + } + return null; + } + + public User copy(User user) { + String userId = user.getUserId(); + String userPassword = user.getUserPassword(); + int userPhoneNumber = user.getUserPhoneNumber(); + String userEmail = user.getUserEmail(); + int userBirthDate = user.getUserBirthDate(); + ArrayList electronicDevices = new ArrayList<>(user.getElectronicDevices()); + User dummyUser = new User(userId, userPassword, userPhoneNumber, userEmail, userBirthDate, electronicDevices); + dummyUser.setRegisterTime(user.getRegisterTime()); + return dummyUser; + } +} diff --git a/java-assignment-3/src/me/day05/practice/practice03/Electronics.java b/java-assignment-3/src/me/day05/practice/practice03/Electronics.java new file mode 100644 index 0000000..102055d --- /dev/null +++ b/java-assignment-3/src/me/day05/practice/practice03/Electronics.java @@ -0,0 +1,87 @@ +package me.day05.practice.practice03; + +import me.day05.practice.practice01.AuthMethod; +import me.day05.practice.practice01.CompanyName; +import me.day05.practice.practice01.Electronic; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Electronics { + private static Electronics instance = null; + private Electronic[] electronicList; + + private Electronics() { + electronicList = new Electronic[10]; + } + + public static Electronics getInstance() { + if (instance==null) { + instance = new Electronics(); + } + return instance; + } + + @Override + public int hashCode() { + return Arrays.hashCode(electronicList); + } + + @Override + public String toString() { + return "electronics{" + + "electronicList=" + Arrays.toString(electronicList) + + "}"; + } + + @Override + public boolean equals(Object o) { + if (this==o) return true; + if (o==null || getClass()!=o.getClass()) return false; + Electronics electronics = (Electronics) o; + return Arrays.equals(electronicList, electronics.electronicList); + } + + public Electronic[] getElectronicList() { + return electronicList; + } + + public void setElectronicList(Electronic[] electronicList) { + this.electronicList = electronicList; + } + + public Electronic findByProductNo(String productNo) { + for (Electronic electronic : electronicList) { + if (electronic.getProductNo().equals(productNo)) { + return electronic; + } + } + return null; + } + + public Electronic[] groupByCompanyName(CompanyName company) { + List res = new ArrayList<>(); + for (Electronic e : electronicList) { + if (e.getCompanyName()==company) res.add(e); + } + return res.toArray(new Electronic[0]); + } + + public Electronic[] groupByAuthMethod(AuthMethod authMethod) { + List electronicListByAuthMethod = new ArrayList<>(); + for (Electronic e : electronicList) { + AuthMethod[] authMethods = e.getAuthMethods(); + for (AuthMethod method : authMethods) { + if (method==authMethod) { + electronicListByAuthMethod.add(e); + break; + } + } + } + Electronic[] res = new Electronic[electronicListByAuthMethod.size()]; + return electronicListByAuthMethod.toArray(res); + } + + +}