클라이언트 -> 요청 -> Controller -> Service -> DB
DB -> Service -> Controller -> View -> 응답 -> 클라이언트
배열 : 같은 자료형인 변수들의 묶음
객체 배열 : 객체 참조형 변수의 묶음
1) 선언
Academy[] arr;
academt arr[];
2) 할당
arr = new Academy[5];
3) 선언과 동시에 할당
Academy[] arr = new Academy[5];
--> arr[index]이 하나의 참조형 변수라고 생각
Service 클래스만
1) Scanner
private Scanner sc = new Scanner(System.in);2) Member 5칸짜리 객체 배열 선언 및 할당
private Member[] memberArr = new Member[5];3) 현재 로그인한 회원의 정보를 저장할 참조 변수
private Member loginMember = null;
1) 기본 생성자(0~2 인덱스 초기화)
public MemberService(){ memberArr[0] = new Member("user01", "pass01", "홍길동", 30, "서울"); memberArr[1] = new Member("user02", "pass02", "계보린", 25, "경기"); memberArr[2] = new Member("user03", "pass03", "고길동", 45, "강원"); }
public void displayMenu(){
int menuNum = 0;
do{ System.out.println("===회원 정보 관리 프로그램 v2==="); System.out.println("1. 회원가입"); System.out.println("2. 로그인"); System.out.println("3. 회원 정보 조회"); System.out.println("4. 회원 정보 수정"); System.out.println("5. 회원 검색(지역)"); System.out.println("0. 프로그램 종료"); System.out.print("메뉴 입력 : "); menuNum = sc.nextInt(); sc.nextLine();
switch(menuNum) { case 1 : System.out.println(signUp()); break; case 2 : System.out.println(login()); break; case 3 : System.out.println(selectMember()); break; case 4 : int result = updateMember(); if(result == -1) { System.out.println("로그인부터 해라"); }else if(result == 0) { System.out.println("수정 실패(비밀번호 오류)"); }else { System.out.println("회원정보가 수정되었습니다"); } break; case 5 : searchRegion(); break; case 0 : System.out.println("프로그램 종료..."); break; default : System.out.println("잘못입력하셨습니다. 다시 입력하세요!"); } }while(menuNum != 0)
public int emptyIndex(){ for(int i = 0; i < memberArr.length; i++){ if(memberArr[i] == null){ return i;} } retrun -1; }
public String signUp(){ System.out.println("\n========회원 가입========"); int index = emptyIndex();
4-1) 비어있는 인덱스가 없을 경우 : 회원 가입 불가
if(index == -1){return}
4-2) 회원가입 정보
System.out.print("아이디 : "); String memberId = sc.next(); System.out.print("비밀번호 : "); String memberPw = sc.next(); System.out.print("비밀번호 확인 : "); String memberPw2 = sc.next(); System.out.print("이름 : "); String memberName = sc.next(); System.out.print("나이 : "); int memberAge = sc.nextInt(); System.out.print("지역 : "); String region = sc.next();
4-3) 비밀번호 확인
if(memberPw.equals(memberPw2)){ memberArr[index] = new Member(memberId, memberPw, memberName, memberAge, region); return "회원가입 성공!!!"; }else{ return "회원 가입 실패!!!(비밀번호 불일치";} }
public String login(){ System.out.println("\n========로그인========"); System.out.print("아이디 입력 : "); String memberId = sc.next(); System.out.print("비밀번호 입력 : "); String memberPw = sc.next();
for(int i = 0; i < memberArr.length; i++) { if(memberArr[i] != null) { // 회원정보가 있을 경우 if(memberArr[i].getMemberId().equals(memberId) && memberArr[i].getMemberPw().equals(memberPw)) { loginMember = memberArr[i]; break; } } } if(loginMember == null){return "아이디 또는 비밀번호가 일치하지 않습니다";} else{return loginMember.getMemberName() + "님 환영합니다!";} }
public String selectMember(){ if(loginMember == null){ return "로그인 먼저 하세요";} return "이름 : " + loginMember.getMemberName() + "\n나이 : " + loginMember.getMemberAge() + "\n지역 : " + loginMember.getRegion(); }
public int updateMember(){ if(loginMember == null){ return "로그인 먼저 하세요";} 7-1) 수정할 회원 정보 입력 받기(이름, 나이, 지역) System.out.print("이름 입력 : "); String inpuName = sc.next(); System.out.print("나이 입력 : "); int inputAge = sc.nextInt(); System.out.print("지역 입력 : "); String inputRegion = sc.next(); 7-2) 비밀번호 입력 확인 System.out.println("비밀번호 입력 : "); String inputPw = sc.next(); if(inputPw.equals(loginMember.getMemberPw())) { loginMember.setMemberName(inpuName); loginMember.setMemberAge(inputAge); loginMember.setRegion(inputRegion); return 1; }else {return 0;} }
public void searchRegion(){ System.out.println("\n========회원 검색(지역)========"); System.out.print("검색할 지역을 입려하세요 : "); String inputRegion = sc.next(); boolean flag = true; for(int i = 0 ; i < memberArr.length; i++) { if(memberArr[i] == null) {break;} if(memberArr[i].getRegion().equals(inputRegion)) { System.out.printf("아이디 : %s, 이름 : %s\n", memberArr[i].getMemberId(), memberArr[i].getMemberName() ); flag = false; } } if(flag) { System.out.println("일치하는 검색 결과가 없습니다!"); } }