public class Mission7_1 {
public static void main(String[] args) {
List<Member> members = new ArrayList<>();
MemberRepository memberRepository = new MemberRepository(members);
}
}
public class MemberRepository {
private List<Member> members;
}
package Class7.Mission;
import java.util.Scanner;
public class Mission7_2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
MemberRepository memberRepository = new MemberRepository();
while (true) {
System.out.println("원하시는 번호를 입력해주세요.");
System.out.println("1. 회원 등록");
System.out.println("2. 회원 조회");
String input = scanner.nextLine();
// 종료조건
if (input.equals("exit")) {
break;
}
if (input.equals("1")) {
System.out.println("이메일을 입력해주세요");
String memberEmail = scanner.nextLine();
System.out.println("이름을 입력해주세요");
String memberName = scanner.nextLine();
System.out.println("나이을 입력해주세요");
String tmp = scanner.nextLine();
int memberAge = Integer.parseInt(tmp);
Member newMember = new Member(memberEmail, memberName, memberAge);
try {
memberRepository.registerMember(newMember);
System.out.println("회원등록이 성공적으로 완료되었습니다.");
} catch (Exception e) {
System.out.println(e.getMessage());
}
} else if (input.equals("2")) {
System.out.println("조회하려는 회원의 이름을 입력해주세요.");
String memberName = scanner.nextLine();
try {
Member foundMember = memberRepository.findOneByName(memberName);
System.out.println(memberName + "님의 이메일은 " + foundMember.getEmail() + "이고, 나이는 "
+ foundMember.getAge() + "입니다.");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
}
}
package Class7.Mission;
import java.util.ArrayList;
import java.util.List;
public class MemberRepository {
private List<Member> members = new ArrayList<>();
public void registerMember(Member member) {
for (int i = 0; i < members.size(); i++) {
Member foundMember = members.get(i);
if (foundMember.getEmail().equals(member.getEmail())) {
throw new IllegalArgumentException("이미 등록된 이메일이어서 회원 등록에 실패했습니다.");
}
}
this.members.add(member);
}
public Member findOneByName(String memberName) {
for (int i = 0; i < members.size(); i++) {
Member foundMember = members.get(i);
if (foundMember.getName().equals(memberName)) {
return foundMember;
}
}
throw new IllegalArgumentException("등록되지 않은 회원입니다.");
}
}
package Class7.Mission;
public class Member {
private String email;
private String name;
private int age;
public String getEmail() {
return email;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public Member(String email, String name, int age) {
this.email = email;
this.name = name;
this.age = age;
}
}
package Class7.Mission;
import java.util.Scanner;
public class Mission7_3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
MemberRepository memberRepository = new MemberRepository();
while (true) {
System.out.println("원하시는 번호를 입력해주세요.");
System.out.println("1. 회원 등록");
System.out.println("2. 회원 조회");
String input = scanner.nextLine();
// 종료조건
if (input.equals("exit")) {
break;
}
if (input.equals("1")) {
System.out.println("원하시는 번호를 입력해주세요");
System.out.println("1. 일반 회원");
System.out.println("2. VIP 회원");
String inputTypeNumber = scanner.nextLine();
System.out.println("이메일을 입력해주세요");
String memberEmail = scanner.nextLine();
System.out.println("이름을 입력해주세요");
String memberName = scanner.nextLine();
System.out.println("나이을 입력해주세요");
String tmp = scanner.nextLine();
int memberAge = Integer.parseInt(tmp);
Member newMember;
if (inputTypeNumber.equals("1")) {
newMember = new Member(memberEmail, memberName, memberAge);
} else if (inputTypeNumber.equals("2")) {
System.out.println("신청한 PT 횟수를 입력해주세요");
String inputPtCount = scanner.nextLine();
int ptCount = Integer.parseInt(inputPtCount);
newMember = new VipMember(memberEmail, memberName, memberAge, ptCount);
} else {
throw new IllegalArgumentException("올바른 번호를 입력하세요");
}
try {
memberRepository.registerMember(newMember);
System.out.println("회원 등록이 성공적으로 완료되었습니다.");
System.out.println();
} catch (Exception e) {
System.out.println(e.getMessage());
}
} else if (input.equals("2")) {
System.out.println("조회하려는 회원의 이름을 입력해주세요");
String inputName = scanner.nextLine();
try {
Member foundMember = memberRepository.findOneByName(inputName);
System.out.println(
foundMember.getName() + "님의 이메일은 " + foundMember.getEmail() + "이고, 나이는 "
+ foundMember.getAge() + "살입니다.");
System.out.println();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
}
}
package Class7.Mission;
public class VipMember extends Member {
private int ptCount;
public VipMember(String email, String name, int age, int ptCount) {
super(email, name, age);
this.ptCount = ptCount;
}
}