나누기 2 --> >> 1 과 동일하다!
https://yozm.wishket.com/magazine/detail/1331/
this는 인스턴스 필드에 원래 붙여야 하는건데,
안 붙여도 컴파일러가 자동으로 붙여주는 것이다.
BoardHandler 클래스 변경
- 생성자를 사용하면, 메서드를 실행할 때 필요한 필수 입력값을 강제로 설정하게 만들 수 있다.
- 기본 생성자의 접근 범위는, 무조건 public으로 선언된다.
BoardHandler 클래스 변경
원래 메소드명은 동사구로 생성하는데, 가끔 전치사구로 on으로 시작하게 만드는 경우가 있다.
하나의 클래스는 하나의 역할만을 맡는 것이 좋다!
BoardHandler 클래스
BoardList 클래스 추가하기
그냥 boards를 리턴해버리면, 게시글 등록 가능 최대 배열 범위수, 예를 들면, 1개 등록했는데 사이즈는 3인 배열이 리턴돼서 1개 이외의 나머지 배열 즉, 인덱스 1, 0에는 null 값이 들어가서 오류가 나게 된다.
처음부터 끝까지 for문을 돌릴 경우 밑에와 같이 for문을 이용해주자!
Board[] list = this.bordList.toArray(); for(Board board:list){ }
void onUpdate() {
//------------------- menu 5 --------------------------
System.out.printf("[%s 수정]\n", this.title);
if(boardList.boardCount ==0) {
System.out.println("현재 존재하는 게시글이 없습니다!");
return;
}
int editNo = Prompt.inputInt("변경할 게시글 번호?");
Board board = this.boardList.get(editNo);
if(board == null) {
System.out.println("잘못된 번호를 입력하셨습니다. 해당 게시글 번호는 존재하지 않습니다.\n올바른 번호를 입력해 주십시오.");
return;
}else {
edit(board);
this.onList();
System.out.println(board.title + board.content + board.writer);
}
}
void edit(Board board) {
String title= Prompt.inputString("제목? " + "("+board.title+")");
String content= Prompt.inputString("내용? "+ "("+board.content+")");
String writer = Prompt.inputString("작성자? "+ "("+board.writer+")");
String password = Prompt.inputString("암호? "+ "("+board.password+")");
if(isEdit()) {
board = makeBoard(title, content, writer, password);
System.out.println("성공적으로 변경되었습니다!");
}else {
System.out.println("변경을 취소하였습니다.");
return;
}
}
static boolean isEdit() {
char ans = Prompt.inputChar("변경하시겠습니까?(y/n) ");
if(ans=='y')return true;
else if(ans=='n') return false;
return ans =='y'? true:false;
}
Board makeBoard(String title, String content, String writer, String pwd) {
Board board2 = new Board();
board2.title =title;
board2.content =content;
board2.writer=writer;
board2.password = pwd;
return board2;
}
void edit(Board board) {
String title= Prompt.inputString("제목? " + "
("+board.title+")");
String content= Prompt.inputString("내용? "+ "
("+board.content+")");
String writer = Prompt.inputString("작성자? "+
"("+board.writer+")");
String password = Prompt.inputString("암호? "+
"("+board.password+")");
if(isEdit()) {
makeBoard(board, title, content, writer, password);
System.out.println("성공적으로 변경되었습니다!");
}else {
System.out.println("변경을 취소하였습니다.");
return;
}
}
static boolean isEdit() {
char ans = Prompt.inputChar("변경하시겠습니까?(y/n) ");
if(ans=='y')return true;
else if(ans=='n') return false;
return ans =='y'? true:false;
}
Board makeBoard(Board board, String title,
String content, String writer, String pwd) {
board.title =title;
board.content =content;
board.writer=writer;
board.password = pwd;
return board;
}