(1) 회원등록, (2) 회원정보조회, (3) 모든회원정보조회, (4) 회원삭제, (5) 회원비밀번호변경
컬렉션프레임워크의 ArrayList를 이용하여 회원관리 시스템을 만들어보았다.
Member1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package t10; public class Member1 { private String id; private String name; private String pw; public Member1(String id, String name, String pw) { this.id = id; this.name = name; this.pw = pw; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPw() { return pw; } public void setPw(String pw) { this.pw = pw; } @Override public String toString() { return "Member1{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", pw='" + pw + '\'' + '}'; } } | cs |
변수 id, name, pw 를 자료형 String으로 생성 후 매개변수를 갖는 생성자를 만들었다.
이후 값을 저장하고 초기화할 수 있도록 세터와 게터를 만들었다.
출력될 정보를 쉽게 toString( )을 이용해 만들어주었다.
MemberManage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | package t10; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class MemberManage { private Scanner sc; private List<Member1> memberList; // 멤버리스트 만들거야., // (아직 만들진 않음) 즉 선언만됨. public MemberManage(){ memberList = new ArrayList<>(); // (여기서 멤버리스트 만들었음.) sc= new Scanner(System.in); } //키보드로 입력받은 정보를 갖는 회원을 리턴. private Member1 getMember(){ // 밖에선 호출 못하도록 private를 씀. System.out.print("회원이름 : "); String name = sc.next(); System.out.print("아이디 : "); String id = sc.next(); System.out.print("비밀번호 : "); String pw = sc.next(); Member1 m = new Member1(id, name, pw); return m; } // 회원등록 public void regMember(){ // Member1 m = getMember(); memberList.add(m); } //회원정보 조회 public void showInfoByName(){ boolean isFind = false; boolean isRun = true; while (isRun){ System.out.print("정보를 조회할 이름 : "); String name = sc.next(); for(int i=0; i<memberList.size(); i++){ if(memberList.get(i).getName().equals(name)){ System.out.println(memberList.get(i)); /// toString으로 출력하는것과 동일. isFind = true; // isFind = !isFind; 위와 같다. isRun = false; break; } } if(!isFind){ System.out.println("일치하는 정보가 없습니다."); } } } // 모든 회원정보 조회 public void showAllInfo(){ for(Member1 member : memberList) { System.out.println(member); } } // 회원삭제 public void deleteInfo(){ System.out.print("삭제할 회원 아이디 : "); Scanner sc = new Scanner(System.in); String id = sc.next(); for(int i=0; i<memberList.size(); i++) { if(memberList.get(i).getId().equals(id)) { memberList.remove(i); } } } // 회원비밀번호 변경 public void updateMemberInfo(){ boolean isFind = false; boolean isRun = true; while (isRun){ System.out.print("비밀번호 변경할 이름 : "); String name = sc.next(); for(int i=0; i<memberList.size(); i++){ if(memberList.get(i).getName().equals(name)){ System.out.print("비밀번호 : "); String pw = sc.next(); memberList.get(i).setPw(pw); isFind = true; isRun = false; break; } } if(!isFind){ System.out.println("일치하는 정보가 없습니다."); } } } } | cs |
코드가 굉장히 길다. 하나하나 살펴보자.
MemberManage 클래스에서 변수를 입력할 Scanner와 Member1클래스 정보가 담긴 List를 선언하였다.
생성자에서 변수로 선언한 입출력해주는 sc와 ArrayList를 활용해 memberList를 생성했다.
getMember 메소드에서 생성자에서 입력한 값이 리턴되며 이름과 아이디, 비밀번호가 저장되어 m에 저장된 후 리턴된다.
회원등록 )) Member1 클래스에 리턴되는 m 정보를 모두 담아 memberList에 저장할 수 있다.
회원정보 조회 )) 일치하는 정보가 없으면 무한으로 반복될 수 있게 while안에 문장들을 감쌌고,
for문을 돌려 memberList에 위치한( get(i) ) 값의 name이 Scanner에서 출력된 name과 동일하면 memberList.get(i)과 같이 모든 정보를 출력하도록 코드를 짰고, while문을 빠져나오도록 했다.
모든 회원정보 조회 )) 클래스 Member1에 있는 값을 memberList 객체로 돌려 member의 값을 출력하도록 foreach문을 사용했다.
회원삭제 )) 회원정보 조회와 동일한 생각으로 코드를 짜주었고, remove를 이용해 삭제를 추가한 것 뿐이다.
회원비밀번호 변경 )) 회원 정보조회와 회원삭제 기능을 적절히 섞어 만들었는데, if문의 마지막에 memberList.get(i).setPw(pw)를 쓴것처럼 비밀번호를 새로 초기화시켜주었다.
TestMember2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package t10; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class TestMember2 { public static void main(String[] args) { Scanner sc= new Scanner(System.in); // 멤버의 등록, 조회, 삭제 등의 기능을 사용하기 위해 생성. MemberManage m = new MemberManage(); List<Member1> list = new ArrayList<>(); while (true) { System.out.print("회원등록<1> 회원정보조회<2> 모든회원정보조회<3> 회원삭제<4> 회원비밀번호변경<5>"); int n = sc.nextInt(); if( n == 1) { // m.getMember(); // private 때문에 호출 불가. m.regMember(); } else if( n == 2) { m.showInfoByName(); } else if( n ==3 ) { m.showAllInfo(); } else if(n ==4 ) { m.deleteInfo(); } else if( n== 5) { m.updateMemberInfo(); } } } } | cs |
'✨ Java > 컬렉션 프레임워크(CollectionFramework)' 카테고리의 다른 글
자바(JAVA) - 컬렉션프레임워크 Map - 2 (0) | 2023.03.31 |
---|---|
자바(JAVA) - 컬렉션프레임워크 List와 Map 같이쓰기 (0) | 2023.02.15 |
자바(JAVA) - 컬렉션프레임워크 Map (0) | 2023.02.15 |
자바(JAVA) - 컬렉션프레임워크 Set (0) | 2023.02.15 |
자바(JAVA) - 컬렉션프레임워크 ArrayList (0) | 2023.02.15 |
댓글