From c94999ae30db991d6139507b9f6b84be12e0bf4c Mon Sep 17 00:00:00 2001 From: MunJunHo Date: Mon, 17 Apr 2023 23:57:16 +0900 Subject: [PATCH 1/3] Java Assignment3 upload by JunHoMun --- Day05/.gitignore | 29 +++++ Day05/Day05.iml | 11 ++ .../day05/practice/practice01/Electronic.java | 89 +++++++++++++++ .../me/day05/practice/practice01/User.java | 104 ++++++++++++++++++ 4 files changed, 233 insertions(+) create mode 100644 Day05/.gitignore create mode 100644 Day05/Day05.iml create mode 100644 Day05/src/me/day05/practice/practice01/Electronic.java create mode 100644 Day05/src/me/day05/practice/practice01/User.java diff --git a/Day05/.gitignore b/Day05/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/Day05/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/Day05/Day05.iml b/Day05/Day05.iml new file mode 100644 index 0000000..6db0c46 --- /dev/null +++ b/Day05/Day05.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Day05/src/me/day05/practice/practice01/Electronic.java b/Day05/src/me/day05/practice/practice01/Electronic.java new file mode 100644 index 0000000..b6b2e9d --- /dev/null +++ b/Day05/src/me/day05/practice/practice01/Electronic.java @@ -0,0 +1,89 @@ +package me.day05.practice.practice01; + + +import java.time.LocalDate; +import java.time.LocalDateTime; + +public class Electronic { + + private StringBuffer productNo; + private static int productionCount=1; + + private LocalDateTime dateOfMade; + private String modelName; + private enum companyName{ + SAMSUNG("삼성"), + LG("엘지"), + APPLE("애플"); + + private String company=null; + companyName(String company) { + this.company=company; + } + + } + + private enum authMethod{ + FINGERPRINT("지문인증"), + PATTERN("패턴인증"), + PIN("핀인증"), + FACE("얼굴인증"); + + private String authMethodName = null; + authMethod(String authMethodName) { + this.authMethodName=authMethodName; + } + } + + private authMethod[] authMethods; + + + public Electronic(companyName companyName, authMethod []authMehods){ + productNo = new StringBuffer(LocalDate.now().getYear()%100); + productNo.append(String.format("%02",LocalDate.now().getDayOfMonth())); + productNo.append(String.format("%02",LocalDate.now().getDayOfMonth())); + productNo.append(String.format("%04",productionCount++ )); + this.authMethods=authMehods; + + } + + public authMethod[] getAuthMethods() { + return authMethods; + } + + public void setAuthMethods(authMethod[] authMethods) { + this.authMethods = authMethods; + } + + public StringBuffer getProductNo() { + return productNo; + } + + public void setProductNo(StringBuffer productNo) { + this.productNo = productNo; + } + + public static int getProductionCount() { + return productionCount; + } + + public static void setProductionCount(int productionCount) { + Electronic.productionCount = productionCount; + } + + public LocalDateTime getDateOfMade() { + return dateOfMade; + } + + public void setDateOfMade(LocalDateTime dateOfMade) { + this.dateOfMade = dateOfMade; + } + + public String getModelName() { + return modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } +} diff --git a/Day05/src/me/day05/practice/practice01/User.java b/Day05/src/me/day05/practice/practice01/User.java new file mode 100644 index 0000000..b8e5798 --- /dev/null +++ b/Day05/src/me/day05/practice/practice01/User.java @@ -0,0 +1,104 @@ +package me.day05.practice.practice01; + +import java.util.Arrays; +import java.util.Objects; + +public class User { + + private String userId; + private String userPassword; + private int userPhoneNumber; + private String userEmail; + private int userBirthDate; + private Electronic[] electronicDevices; + + + public User(){}// default 생성자 + + 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 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; + + 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; + // Probably incorrect - comparing Object[] arrays with Arrays.equals + return Arrays.equals(electronicDevices, user.electronicDevices); + } + + @Override + public int hashCode() { + int result = userId.hashCode(); + result = 31 * result + userPassword.hashCode(); + result = 31 * result + userPhoneNumber; + result = 31 * result + userEmail.hashCode(); + result = 31 * result + userBirthDate; + result = 31 * result + Arrays.hashCode(electronicDevices); + return result; + } + + @Override + public String toString() { + return "User{" + + "userId='" + userId + '\'' + + ", userPassword='" + userPassword + '\'' + + ", userPhoneNumber=" + userPhoneNumber + + ", userEmail='" + userEmail + '\'' + + ", userBirthDate=" + userBirthDate + + ", electronicDevices=" + Arrays.toString(electronicDevices) + + '}'; + } +} From 90222fcf156461a006aa3844343da26360fc7af9 Mon Sep 17 00:00:00 2001 From: MunJunHo Date: Wed, 19 Apr 2023 14:46:54 +0900 Subject: [PATCH 2/3] second commit code improvement --- .../day05/practice/Practice01/Electronic.java | 122 ++++++++++ .../{practice01 => Practice01}/User.java | 31 +-- .../me/day05/practice/Practice02/Users.java | 212 ++++++++++++++++++ .../practice/Practice03/Electronics.java | 123 ++++++++++ .../day05/practice/practice01/Electronic.java | 89 -------- 5 files changed, 473 insertions(+), 104 deletions(-) create mode 100644 Day05/src/me/day05/practice/Practice01/Electronic.java rename Day05/src/me/day05/practice/{practice01 => Practice01}/User.java (71%) create mode 100644 Day05/src/me/day05/practice/Practice02/Users.java create mode 100644 Day05/src/me/day05/practice/Practice03/Electronics.java delete mode 100644 Day05/src/me/day05/practice/practice01/Electronic.java diff --git a/Day05/src/me/day05/practice/Practice01/Electronic.java b/Day05/src/me/day05/practice/Practice01/Electronic.java new file mode 100644 index 0000000..e4c0a8e --- /dev/null +++ b/Day05/src/me/day05/practice/Practice01/Electronic.java @@ -0,0 +1,122 @@ +package me.day05.practice.Practice01; + + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Arrays; +import java.util.Objects; + +public class Electronic { + + public enum companyName {SAMSUNG,LG,APPLE} + public enum authMethod {FINGERPRINT, PATTERN, PIN, FACE} + private authMethod[] authMethods; + private companyName company; + private String productNo; + private static int productionCount=1; + + private String modelName; + private LocalDateTime dateOfMade; + + public Electronic(companyName companyName, authMethod []authMehods, String modelName){ + + StringBuffer generateProductNo; + generateProductNo = new StringBuffer(LocalDate.now().getYear()%100); + generateProductNo.append(String.format("%02",LocalDate.now().getDayOfMonth())); + generateProductNo.append(String.format("%02",LocalDate.now().getDayOfMonth())); + generateProductNo.append(String.format("%04",productionCount++ )); + this.productNo = String.valueOf(getProductNo()); + this.authMethods = authMehods; + this.company = companyName; + this.modelName = modelName; + this.dateOfMade = LocalDateTime.now(ZoneId.systemDefault()); + + } + + public authMethod[] getAuthMethods() { + return authMethods; + } + + public void setAuthMethods(authMethod[] authMethods) { + this.authMethods = authMethods; + } + + public companyName getCompany() { + return company; + } + + public void setCompany(companyName company) { + this.company = company; + } + + public String getProductNo() { + return productNo; + } + + public void setProductNo(String productNo) { + this.productNo = productNo; + } + + public static int getProductionCount() { + return productionCount; + } + + public static void setProductionCount(int productionCount) { + Electronic.productionCount = productionCount; + } + + public LocalDateTime getDateOfMade() { + return dateOfMade; + } + + public void setDateOfMade(LocalDateTime dateOfMade) { + this.dateOfMade = dateOfMade; + } + + public String getModelName() { + return modelName; + } + + public void setModelName(String modelName) { + this.modelName = modelName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + Electronic that = (Electronic) o; + + if (!Objects.equals(productNo, that.productNo)) return false; + if (!Objects.equals(dateOfMade, that.dateOfMade)) return false; + if (!Objects.equals(modelName, that.modelName)) return false; + if (company != that.company) return false; + // Probably incorrect - comparing Object[] arrays with Arrays.equals + return Arrays.equals(authMethods, that.authMethods); + } + + @Override + public int hashCode() { + int result = productNo != null ? productNo.hashCode() : 0; + result = 31 * result + (dateOfMade != null ? dateOfMade.hashCode() : 0); + result = 31 * result + (modelName != null ? modelName.hashCode() : 0); + result = 31 * result + (company != null ? company.hashCode() : 0); + result = 31 * result + Arrays.hashCode(authMethods); + return result; + } + + + @Override + public String toString() { + return "Electronic{" + + "productNo=" + productNo + + ", dateOfMade=" + dateOfMade + + ", modelName='" + modelName + '\'' + + ", company=" + company + + ", authMethods=" + Arrays.toString(authMethods) + + '}'; + } + +} diff --git a/Day05/src/me/day05/practice/practice01/User.java b/Day05/src/me/day05/practice/Practice01/User.java similarity index 71% rename from Day05/src/me/day05/practice/practice01/User.java rename to Day05/src/me/day05/practice/Practice01/User.java index b8e5798..31e9be6 100644 --- a/Day05/src/me/day05/practice/practice01/User.java +++ b/Day05/src/me/day05/practice/Practice01/User.java @@ -1,4 +1,4 @@ -package me.day05.practice.practice01; +package me.day05.practice.Practice01; import java.util.Arrays; import java.util.Objects; @@ -15,6 +15,19 @@ public class User { public User(){}// default 생성자 + public User(String userId){ + this.userId = userId; + } + + public User(String userId, String userPassword, int userPhoneNumber, String userEmail, int userBirthDate, Electronic[] electronicDevices) { + this.userId = userId; + this.userPassword = userPassword; + this.userPhoneNumber = userPhoneNumber; + this.userEmail = userEmail; + this.userBirthDate = userBirthDate; + this.electronicDevices = electronicDevices; + } + public String getUserId() { return userId; } @@ -70,24 +83,12 @@ public boolean equals(Object o) { 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; - // Probably incorrect - comparing Object[] arrays with Arrays.equals - return Arrays.equals(electronicDevices, user.electronicDevices); + return Objects.equals(userId, user.userId); } @Override public int hashCode() { - int result = userId.hashCode(); - result = 31 * result + userPassword.hashCode(); - result = 31 * result + userPhoneNumber; - result = 31 * result + userEmail.hashCode(); - result = 31 * result + userBirthDate; - result = 31 * result + Arrays.hashCode(electronicDevices); - return result; + return userId.hashCode(); } @Override diff --git a/Day05/src/me/day05/practice/Practice02/Users.java b/Day05/src/me/day05/practice/Practice02/Users.java new file mode 100644 index 0000000..5146e4a --- /dev/null +++ b/Day05/src/me/day05/practice/Practice02/Users.java @@ -0,0 +1,212 @@ +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 allUsers; + // 싱글톤 + public Users getInstance() { + if (allUsers == null) { + allUsers = new Users(); + } + return allUsers; + } + private User[] userList; + private static final int DEFAULT = 10; + private int size; + private int capacity; + + private Users() { + allUsers.userList = new User[DEFAULT]; + this.capacity = DEFAULT; + this.size = 0; + } + + private Users(int initial){ + allUsers.userList = new User[initial]; + this.capacity = initial; + this.size =0; + } + + private Users(User[] userList){ + this.userList = userList; + this.capacity = userList.length; + this.size = userList.length; + } + + public User[] getUserList() { + return userList; + } + + public void setUserList(User[] userList) { + this.userList = userList; + } + + // add, set, get, pop, indexOf,size, capcity(for dynamic- size array) + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getCapacity() { + return capacity; + } + + public void setCapacity(int capacity) { + this.capacity = capacity; + } + + public User get(int index){ + if(index<0||index>=this.size){ + System.out.println("index의 범위가 올바르지 않습니다."); + return null; + } + return userList[index]; + } + + public void set(int index, User user){ + if(index<0||index>=this.size){ + System.out.println("index의 범위가 올바르지 않습니다."); + return; + } + if(user == null) { + System.out.println("저장이 불가합니다."); + return; + } + userList[index] = user; + } + + public int indexOf(User user){ + if(user == null) { + System.out.println("not found ."); + return -1; + } + + for(int i=0;i= size) return null; + + User popElement = userList[idx]; + userList[idx]= null; + + for(int i = idx+1;i Date: Wed, 19 Apr 2023 15:16:27 +0900 Subject: [PATCH 3/3] third commit - bug fix --- Day05/src/me/day05/practice/Practice03/Electronics.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Day05/src/me/day05/practice/Practice03/Electronics.java b/Day05/src/me/day05/practice/Practice03/Electronics.java index ccecacf..25cdc08 100644 --- a/Day05/src/me/day05/practice/Practice03/Electronics.java +++ b/Day05/src/me/day05/practice/Practice03/Electronics.java @@ -70,7 +70,7 @@ public Electronic[] groupByCompanyName(Electronic.companyName company){ Electronic[] groupByCompanyNameArray= new Electronic[size]; int j=0; for(int i=0;i