객체 배열만을 이용하여
등록, 출력, 검색, 수정이 가능하게 해보자!!!
ArrayList XXXXXXXX 아님 XXXXXXX
먼저 DTO(VO) 입력창
package vo;
public class address {
private String name;
private String tel;
private String address;
public address() {
super();
}
public address(String name, String tel, String address) {
super();
this.name = name;
this.tel = tel;
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() { //객체 출력을 위해
return "[ 이름 : " + name + ", 전화번호 : " + tel + ", 주소 : " + address + "]";
}
}
DTO 클래스는 다 비슷비슷 한 거 같다
Service 클래스
package service;
import java.util.Scanner;
import vo.address;
public class AddressService {
private address[] a = new address[10];
private int index; //배열값을 추가할 변수
private String name;
private String tel;
private String address;
Scanner sc;
public AddressService() {
super(); //생성자의 첫줄은 무조건 super(), 여기서는 Object클래스를 가져오는 것
}
public void hello(Scanner sc) {
boolean flag = true; //while문을 돌리기 위해
int key = 0; //switch문을 위해
while(flag) {
System.out.println("1.등록 2.출력 3.검색 4.수정 5.종료");
key = sc.nextInt();
switch(key) {
case 1: //등록
addPerson(sc);
break;
case 2: //출력
printAll(sc);
break;
case 3: //검색
findPerson(sc);
break;
case 4: //수정
findUpdate(sc);
break;
case 5: //종료
System.out.println("종료합니다");
flag = false;
break;
}
}
}
public void addPerson(Scanner sc) { //추가
System.out.print("이름 : ");
name = sc.next();
System.out.print("전화번호 : ");
tel = sc.next();
System.out.print("주소 : ");
address = sc.next();
address a = new address(name,tel,address); //입력받은 값을 객체에 넣고
this.a[index] = a; //객체를 배열에 넣는다
index++; //초기값은 0, 등록이 실행 될 때마다 1씩 늘어나게 한다
}
public void printAll(Scanner sc) { //출력
for(int i=0;i<index;i++) { //index 수만큼 돌린다
System.out.println(a[i]);
}
}
public void findPerson(Scanner sc) {
System.out.print("찾을 이름을 쓰세요 : ");
name = sc.next();
for(int i=0;i<index;i++) { //index(등록횟수)만큼 돌린다
if(name.equals(a[i].getName())) { //배열중에 name이 같은 객체가 있는지 확인
System.out.println(a[i]); //있으면 출력
}
}
}
public void findUpdate(Scanner sc) { //수정
System.out.print("찾을 이름을 쓰세요 : ");
name = sc.next();
for(int i=0;i<index;i++) { //index(등록횟수)만큼 돌린다
if(name.equals(a[i].getName())) { //배열 중에 이름이 같은 객체가 있는지 확인
System.out.print("수정할 전화번호 : ");
tel = sc.next();
System.out.print("수정할 주소 : ");
address = sc.next();
address a = new address(name,tel,address); //객체에 새 값을 집어 넣는다
this.a[i] = a; //그 객체를 배열에 추가한다
}
}
}
}
메인 실행 클래스
package test;
import java.util.Scanner;
import service.AddressService;
public class TestService {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
AddressService s = new AddressService();
s.hello(sc);
}
}
결과
ArrayList로 구현해본 적이 있어서
객체 배열은 좀 쉬웠당...아닌가 이게 더 어려운가
먼가 안 막히고 쓕쓕 돼서 신기했음!!!
학원 테스트 과제(?)였는데
빨리 끝내고 선생님 설명하는 동안 다른 거 만들었다ㅋㅋㅋ
모로 가도 서울만 가면 되는 거 아니겠습니까?ㅎㅎ
728x90
'혼자서 개발새발' 카테고리의 다른 글
JAVA) 상속+추상클래스+다형성으로 다마고치를 만들어보자! (1) | 2022.10.06 |
---|---|
JAVA) 상속을 이용해 다마고치 만들기! (0) | 2022.10.05 |
JAVA) 간단한 회원가입 페이지를 만들어보자! (1) | 2022.10.04 |
int a 값에 메소드 return값을 담는다면? (0) | 2022.10.01 |
카페 주문 앱을 객체로 정리해보자! (1) | 2022.09.30 |