본문 바로가기

개발이야기

명함관리 클래스를 완성하시오.

명함관리 클래스를 완성하시오.

명함관리 프로그램에 사용할 클래스를 완성하시오.
(실행 출력결과는 오른쪽 부분을 참고하고, Card 클래스를 컬렉션 형태로 저장하는 방법은 [과제]폴더의 [4.CardBasic] 폴더에 있는 [UseArrayList.txt] 파일을 참고하여 아래 코드를 완성하시오.)

<<UseArrayList.txt 내용>>
ArrayList에 String을 저장할 때는 아래와 같은 방법으로 사용합니다.
List는 interface이고 ArrayList는 List를 구현한 클래스입니다.


import java.util.ArrayList;
import java.util.List;

public class Test {
public static void main(String[] args) {
List<String> strings = new ArrayList<String>();
strings.add("str01");
strings.add("str02");

for (String str : strings) {
System.out.println(str);
}
}
}

만약 ArrayList에 사용자가 만든 Person이라는 클래스를 저장하게 하려면 다음과 같이 해야합니다.
List<Person> people = new ArrayList<Person>();

문제예시)
public class Card {
    private int number;      // 인덱스 번호 (PK)
    private String name;     // 이름
    private String phone;    // 전화번호
    private String email;     // 이메일
    public Card(int number, String name, String phone, String email) { // 생성자
        this.number = number; this.name = name; this.phone = phone; this.email = email;
    }
    public int getNumber() { return number; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getPhone() { return phone; }
    public void setPhone(String phone) { this.phone = phone; }
    public String getEmail() { return email; }
    public void setEmail(String email) { this.email = email; }
    public void print() { [...] }
}
public class CardRepository {
    [...]                                      // 멤버변수
    public void add([...]) { [...] }      // 연락처 추가
    public void remove([...]) { [...] } // 연락처 삭제
    public void print() { [...] }         // 저장된 연락처 모두 출력
}
public class Test {
    public static void main(String[] args) {
        CardRepository cardRepo = new CardRepository();
        cardRepo.add(new Card(1, "홍반장", "012-123-1234", "hbj@test.com"));
        cardRepo.add(new Card(2, "임꺼져", "012-234-2345", "igetout@test.com"));
        cardRepo.print(); // ....................(1)
        cardRepo.remove(2);
        System.out.println("삭제 후...");
        cardRepo.print(); // ....................(2)
    }
}

출력결과)
(1) 부분 출력
1    홍반장    012-123-1234    hbj@test.com
2    임꺼져    012-234-2345    igetout@test.com
삭제 후…
(2) 부분 출력
1    홍반장    012-123-1234    hbj@test.com


Card.java
public class Card {
    private int number;
    private String name;
    private String phone;
    private String email;
    public Card(int number, String name, String phone, String email) {
        this.number = number; this.name = name; this.phone = phone; this.email = email;
    }
    public int getNumber() { return number; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getPhone() { return phone; }
    public void setPhone(String phone) { this.phone = phone; }
    public String getEmail() { return email; }
    public void setEmail(String email) { this.email = email; }
    public void print() {
System.out.println(this.number+"\t"+this.name+"\t"+this.phone+"\t"+this.email);
}
}

CardRepository.java
import java.util.ArrayList;
import java.util.List;

public class CardRepository {
private List<Card> cardList = new ArrayList<Card>();
public void add(Card inCard) { cardList.add(inCard); }
public void remove(int number) {
for (Card cardTemp : cardList) {
if(cardTemp.getNumber() == number) {
cardList.remove(cardTemp);
break;
}
}
}
public void print() {
for (Card cardTemp : cardList) {
cardTemp.print();
}
}
}

Test.java
public class Test {
    public static void main(String[] args) {
        CardRepository cardRepo = new CardRepository();
        cardRepo.add(new Card(1, "홍반장", "012-123-1234", "hbj@test.com"));
        cardRepo.add(new Card(2, "임꺼져", "012-234-2345", "igetout@test.com"));
        cardRepo.print();
        cardRepo.remove(2);
        System.out.println("삭제 후...");
        cardRepo.print();
    }
}

결과값)
1 홍반장 012-123-1234 hbj@test.com
2 임꺼져 012-234-2345 igetout@test.com
삭제 후...
1 홍반장 012-123-1234 hbj@test.com