Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Java Assignment3 upload by YongWonKim #20

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions me/day05/practice/Practice01/AuthMethod.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package me.day05.practice.Practice01;

public enum AuthMethod {
FINGERPRINT("지문 인증"), PATTERN("패턴 인증"), PIN("핀 인증"), FACE("얼굴 인증"),;

private String authMethod = null;

AuthMethod(String authMethod) {
this.authMethod = authMethod;
}

public String getAuthMethod() {
return authMethod;
}

public void setAuthMethod(String authMethod) {
this.authMethod = authMethod;
}
}
23 changes: 23 additions & 0 deletions me/day05/practice/Practice01/Company.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package me.day05.practice.Practice01;

public enum Company {

SAMSUNG("SAMSUNG"), LG("LG"), APPLE("APPLE");

private String companyName;

Company(String companyName){
this.companyName = companyName;
}

public String getCompanyName() {
return companyName;
}

public void setCompanyName(String companyName) {
this.companyName = companyName;
}
}



110 changes: 110 additions & 0 deletions me/day05/practice/Practice01/Electronic.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
package me.day05.practice.Practice01;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Objects;

public class Electronic {

private static int modelCount = 0;

private String productNo;
private String modelName;
private Company companyName;
private LocalDate dateOfMade;
private ArrayList<AuthMethod> authMethod = new ArrayList<>();


public Electronic(String modelName, Company companyName, AuthMethod auth) {
this.productNo = setProductNo();
this.modelName = modelName;
this.companyName = companyName;
this.dateOfMade = setDateOfMade();
authMethod.add(auth);
}


public static int getModelCount() {
return modelCount;
}

public static void setModelCount(int modelCount) {
Electronic.modelCount = modelCount;
}

public String getProductNo() {
return productNo;
}


public String setProductNo() {
modelCount++;
LocalDate now = LocalDate.now();
String productNo = now.format(DateTimeFormatter.ofPattern("YYMMdd"));
productNo += String.format("%04d", modelCount);
return productNo;
}

private LocalDate setDateOfMade() {
LocalDate now = LocalDate.now();
return now;
}

public String getModelName() {
return modelName;
}

public void setModelName(String modelName) {
this.modelName = modelName;
}

public Company getCompanyName() {
return companyName;
}

public void setCompanyName(Company companyName) {
this.companyName = companyName;
}

public LocalDate getDateOfMade() {
return dateOfMade;
}

public void setDateOfMade(LocalDate dateOfMade) {
this.dateOfMade = dateOfMade;
}

public ArrayList<AuthMethod> getAuthMethod() {
return authMethod;
}

public void setAuthMethod(AuthMethod auth) {
authMethod.add(auth);
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Electronic that = (Electronic) o;
return productNo.equals(that.productNo) && modelName.equals(that.modelName) && companyName.equals(that.companyName) && dateOfMade.equals(that.dateOfMade) && authMethod.equals(that.authMethod);
}

@Override
public int hashCode() {
return Objects.hash(productNo, modelName, companyName, dateOfMade, authMethod);
}

@Override
public String toString() {
return "Electronic{" +
"productNo='" + productNo + '\'' +
", modelName='" + modelName + '\'' +
", companyName='" + companyName + '\'' +
", dateOfMade=" + dateOfMade +
", authMethod=" + authMethod +
'}';
}

}
22 changes: 22 additions & 0 deletions me/day05/practice/Practice01/MainTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package me.day05.practice.Practice01;

public class MainTest {
public static void main(String[] args) {
Electronic SMonitor = new Electronic("Monitor", Company.SAMSUNG, AuthMethod.FACE);
Electronic IMac = new Electronic("Mac", Company.APPLE, AuthMethod.FINGERPRINT);
Electronic Gram = new Electronic("Gram", Company.LG, AuthMethod.PIN);

User user01 = new User("Kim", "1234qwer", "01012345678", "[email protected]", 19950927, Gram);
User user02 = new User("Park", "qwer1234asdf", "01012345678", "[email protected]", 19920901, null );

IMac.setAuthMethod(AuthMethod.PATTERN);
Gram.setAuthMethod(AuthMethod.FACE);

user02.addElectronicDevices(SMonitor);
user02.addElectronicDevices(IMac);

System.out.println(user01);
System.out.println(user02);

}
}
112 changes: 112 additions & 0 deletions me/day05/practice/Practice01/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
package me.day05.practice.Practice01;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Objects;

public class User {
private String userId;
private String userPassword;
private String userPhoneNumber;
private String userEmail;
private int userBirthDate;
private ArrayList<Electronic> electronicDevices = new ArrayList<>();
private LocalDateTime registerTime;

public User(String userId, String userPassword, String userPhoneNumber, String userEmail, int userBirthDay, Electronic electronic) {
this.userId = userId;
this.userPassword = userPassword;
this.userPhoneNumber = userPhoneNumber;
this.userEmail = userEmail;
this.userBirthDate = userBirthDay;
this.registerTime = LocalDateTime.now();
electronicDevices.add(electronic);
}


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 int getUserBirthDate() {
return userBirthDate;
}

public void setUserBirthDate(int userBirthDate) {
this.userBirthDate = userBirthDate;
}

public ArrayList<Electronic> getElectronicDevices() {
return electronicDevices;
}

public void setElectronicDevices(ArrayList<Electronic> electronicDevices) {
this.electronicDevices = electronicDevices;
}

public void addElectronicDevices(Electronic devices) {
electronicDevices.add(devices);
}

public LocalDateTime getRegisterTime() {
return registerTime;
}

public void setRegisterTime(LocalDateTime registerTime) {
this.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 userPhoneNumber == user.userPhoneNumber && userBirthDate == user.userBirthDate && userId.equals(user.userId) && userPassword.equals(user.userPassword) && userEmail.equals(user.userEmail) && electronicDevices.equals(user.electronicDevices) && registerTime.equals(user.registerTime);
}

@Override
public int hashCode() {
return Objects.hash(userId, userPassword, userPhoneNumber, userEmail, userBirthDate, electronicDevices, registerTime);
}

@Override
public String toString() {
return "User{" +
"userId='" + userId + '\'' +
", userPassword='" + userPassword + '\'' +
", userPhoneNumber=" + userPhoneNumber +
", userEmail='" + userEmail + '\'' +
", userBirthDate=" + userBirthDate +
", electronicDevices=" + electronicDevices +
", registerTime=" + registerTime +
'}';
}
}
86 changes: 86 additions & 0 deletions me/day05/practice/Practice02/Users.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package me.day05.practice.Practice02;

import me.day05.practice.Practice01.Electronic;
import me.day05.practice.Practice01.User;

import java.util.Arrays;

public class Users {

private static Users usersInstance;

private Users(){
}

//1.싱글톤

public static Users getInstance() {
if(usersInstance==null) {
usersInstance = new Users();
}
return usersInstance;
}

public static Users getUsersInstance() {
return usersInstance;
}

public static void setUsersInstance(Users usersInstance) {
Users.usersInstance = usersInstance;
}

private User[] userList;

public User[] getUserList() {
return userList;
}

public void setUserList(User[] userList) {
this.userList = userList;
}


//2. 함수 반환
public User findByUserId(String userId) {
for(User user : userList) {
if(user.getUserId().equals(userId)) {
return user;
}
}
return null;
}

//3. deep copy?

public User copy(User user) {
User copyUser = new User(user.getUserId(),
user.getUserPassword(),
user.getUserEmail(),
user.getUserPhoneNumber(),
user.getUserBirthDate(),
user.getElectronicDevices().get(1));
return copyUser;
}

@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);
}

@Override
public int hashCode() {
return Arrays.hashCode(userList);
}
@Override
public String toString() {
return "Users{" +
"userList=" + Arrays.toString(userList) +
'}';
}



}
Loading