Contents
접기
v3 = 다수의 데이터 처리 (객체배열)
1) FitnessVO 설계
2) 서비스 분리 (객체배열 접근만)
3) UI 분리 (인풋. 아웃풋 분리)
==========================
service ---> 이름수정 FitnessUI.java , service 에 필요한 메소드를 설계
package service;
import vo.Fitness;
public class FitnessService {
public static final int MAX = 100;
// 객체 배열 (CRUD)
Fitness[] members = new Fitness[MAX];
int size = 0;
설명 | 값 |
파라미터로 전달된 Fitness 객체를 객체 배열에 저장. | @param member : 객체 뱌열에 저장할 정보 @return : boolean 저장여부 |
public boolean insert(Fitness member) { //C
// 1. 데이터를 잘 전달하지 못 한 경우 vs 데이터를 잘 전달한 경우
boolean result = false;
return result;
//return false;
}
UI : 에러 처리를 ui 에서 하는가 service에서 하는가의 차이는 상황에 따라
설명 | 값 |
회원 가입을 처리하는 메소드 | @parameter: 없음 @result : 없음 |
private void create() {
System.out.println(" [ 회원 등록 ] ");
String id, name;
double weight, height;
if(service.getCount() > FitnessService.MAX) {
System.out.println("## 회원가입이 불가능합니다.");
return;
}
System.out.print("> 아이디 : "); id = keyin.next();
int searchIndex = service.search(id);
if(searchIndex > -1) {
System.out.println("## 사용할 수 없는 아이디입니다.");
return;
}
System.out.print("> 이 름 : "); name = keyin.next();
System.out.print("> 키(cm) : "); height = keyin.nextDouble();
System.out.print("> 몸무게(Kg): "); weight = keyin.nextDouble();
Fitness member = new Fitness(id, name, height, weight);
boolean result = service.insert(member);
if (result)
System.out.println("## 회원등록 완료!\n");
} // end create()
설명 | 값 |
id를 전달받아 객체 배열 내에 해당 아이디를 검색하여 결과 반환 | @param id : 검색할 ID @return : 검색 결과 |
public Fitness selectOne(String id) { //R
Fitness m = null;
for(int i = 0; i < size; i++) {
if( members[i].getId().equals(id)) {
m = members[i];
break;
}
}
return m;
}
UI
설명 | 값 |
회원의 아이디를 이용하여 조회하는 메소드 | parameter: 없음 return: 없음 |
private void read() {
System.out.println(" [ 정보 조회 ] ");
if(service.getCount() == 0) {
System.out.println("## 등록된 회원이 없습니다.\n");
return;
}
// 검색할 사람의 아이디 입력
String id;
System.out.print("> 검색 아이디 입력: ");
id = keyin.next();
int searchIndex = service.search(id);
if(searchIndex == -1) {
System.out.println("## 존재하지 않는 회원입니다.");
return;
}
Fitness member = service.selectOne(id);
member.output();
}
설명 | 값 |
파라미터 전달된 Fitness 데이터를 배열에서 검색하여 데이터 수정 | @param member : 수정하고자 하는 데이터 @return : 수정 결과 |
public boolean update(Fitness member) {
boolean result = false;
return result;
//return false;
}
public boolean update(Fitness member) {
int searchIndex = search(member.getId());
members[searchIndex].setWeight(member.getWeight());
members[searchIndex].setHeight(member.getHeight());
return true;
}
UI
private void update() {
System.out.println(" [ 회원 정보 수정 ] ");
if(service.getCount() == 0) {
System.out.println("## 등록된 회원이 없습니다.\n");
return;
}
String id;
double weight, height;
// 수정할 사람의 아이디 입력
System.out.print("> 수정할 아이디 입력: ");
id = keyin.next();
int searchIndex = service.search(id);
if(searchIndex == -1) {
System.out.println("## 존재하지 않는 회원입니다.");
return;
}
System.out.print("> 키(cm) : "); height = keyin.nextDouble();
System.out.print("> 몸무게(Kg): "); weight = keyin.nextDouble();
Fitness member = new Fitness(id, null , height, weight);
boolean result = service.update(member);
if(result) System.out.println("## 정보 수정 완료!\n");
}
설명 | 값 |
id를 전달받아 배열에서 해당 아이디 검색하여 데이터 삭제 | @param id : 삭제하려는 ID값 @return : 삭제 여부 |
public boolean delete(String id) {
boolean result = false;
return result;
//return false;
}
public boolean delete(String id) {
int searchindex = search(id);
for(int i = searchindex; i < size -1; ++i) {
members[i] = members[i+1];
}
--size;
return true;
}
UI
설명 | 값 |
회원의 아이디를 입력받아 탈퇴처리하는 메소드 | - |
private void delete() {
System.out.println(" [ 회원 탈퇴 ] ");
String confirm;
if(service.getCount() == 0) {
System.out.println("## 등록된 회원이 없습니다.\n");
return;
}
// 삭제할 사람의 아이디 입력
String id;
System.out.print("> 탈퇴할 아이디 입력: ");
id = keyin.next();
int searchIndex = service.search(id);
if(searchIndex == -1) {
System.out.println("## 존재하지 않는 회원입니다.");
return;
}
System.out.print("> 정말 탈퇴하실거에요? (y/n) ");
confirm = keyin.next();
if(!(confirm.equals("Y") || confirm.equals("y"))) {
System.out.println("## 탈퇴가 취소되었습니다!\n");
return;
}
boolean result = service.delete(id);
if(result)
System.out.println("## 탈퇴 되었습니다!\n");
}
설명 | 값 |
배열 전체를 반환 | @return : 배열 |
public Fitness[] selectAll() {
return members;
}
UI
private void readAll() {
System.out.println(" [ 전체 회원 조회 ] ");
int size = service.getCount();
if( size == 0) {
System.out.println("## 등록된 회원이 없습니다.\n");
return;
}
System.out.println("# 현재 회원 수: " + size +"명");
Fitness[] members = service.selectAll();
for(int i=0; i<size; ++i)
members[i].output();
}
기존 FitnessService --> FitnessUI 로 변경하며 추가
====> UI에 있던 코드를 그대로 옮겨서 원래 private 으로 되어있던 걸 public 으로만 변경
설명 | 값 |
파라미터로 전달받은 아이디를 객체 배열에서 검색하여 위치값을 반환하는 메소드 | @param id : 검색하기 위한 아이디 @return : 검색한 아이디의 위치 정보 |
public int search(String id) {
int searchIndex = -1;
for(int i=0; i<size; ++i) {
if(members[i].getId().equals(id)) {
searchIndex = i;
break;
}
}
return searchIndex;
}
'국비 교육 > 백엔드(Java, Spring)' 카테고리의 다른 글
[자바] 상속, 오버라이딩, 추상화 클래스 예제 - 입장권 판매 (0) | 2024.01.25 |
---|---|
[자바] 상속(Inheritance), 오버라이딩(Overriding), 추상화 클래스 (Abstract Class) (0) | 2024.01.25 |
[자바] 피트니스 관리 프로젝트 - v2 (0) | 2024.01.24 |
[자바] this, Static 지정자, 객체 배열 (0) | 2024.01.24 |