JX405기_비트/Java
Day03-2 Board 클래스에 생성자와 메소드 선언하여 게시판관리 프로그램 만들기
_하루살이_
2023. 1. 15. 15:25
Board 클래스
package day0111;
public class Board {
private int id;
private String title;
private String writer;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public void printBoard() {
System.out.println("-----------------------------------");
System.out.println(title);
System.out.println("-----------------------------------");
System.out.println("번호: " + id);
System.out.println("작성자: " + writer);
System.out.println("-----------------------------------");
System.out.println(content);
}
public boolean equals(Object o) {
if (o instanceof Board) {
Board b = (Board) o;
return id == b.id;
}
return false;
}
}
실행되는 클래스
package day0111;
import util.ScannerUtil;
import java.util.Scanner;
public class Ex02Board {
public static final Scanner SCANNER = new Scanner(System.in);
public static Board[] boardArray = new Board[5];
public static int nextId = 1;
public static void main(String[] args) {
showMenu();
}
public static void showMenu() {
while (true) {
String message = "1. 입력 2. 출력 3. 종료";
int userChoice = ScannerUtil.nextInt(SCANNER, message);
if (userChoice == 1) {
writeBoard();
} else if (userChoice == 2) {
printList();
} else if (userChoice == 3) {
System.out.println("사용해주셔서 감사합니다.");
break;
}
}
}
public static void writeBoard() {
int nextIndex = findEmptyIndex();
if (nextIndex >= boardArray.length) {
System.out.println("더이상 작성하실 수 없습니다.");
} else {
Board b = new Board();
String message;
b.setId(nextId++);
message = "글의 작성자를 입력해주세요.";
b.setWriter(ScannerUtil.nextLine(SCANNER, message));
message = "글의 제목을 입력해주세요.";
b.setTitle(ScannerUtil.nextLine(SCANNER, message));
message = "글의 내용을 입력해주세요.";
b.setContent(ScannerUtil.nextLine(SCANNER, message));
boardArray[nextIndex] = b;
}
}
public static void printList() {
if (findEmptyIndex() == 0) {
System.out.println("아직 작성된 게시글이 없습니다.");
} else {
for (int i = 0; i < findEmptyIndex(); i++) {
System.out.println(boardArray[i].getId() + ". " + boardArray[i].getTitle());
}
String message = "상세보기할 글의 번호나 뒤로 가실려면 0을 입력해주세요.";
int userChoice = ScannerUtil.nextInt(SCANNER, message);
while (userChoice != 0 && findIndexById(userChoice) == -1) {
System.out.println("잘못 입력하셨습니다.");
userChoice = ScannerUtil.nextInt(SCANNER, message);
}
if (userChoice != 0) {
printOne(userChoice);
}
}
}
public static void printOne(int id){
if(findIndexById(id) == -1){
System.out.println("해당 id를 가진 게시글은 존재하지 않습니다.");
}else {
boardArray[findIndexById(id)].printBoard();
String message = "1. 수정 2. 뒤로가기";
int userChoice = ScannerUtil.nextInt(SCANNER, message);
if(userChoice == 1){
update(id);
} else {
printList();
}
}
}
public static void update(int id){
int index = findIndexById(id);
boardArray[index].setTitle(ScannerUtil.nextLine(SCANNER, "새로운 제목을 입력해주세요."));
boardArray[index].setContent(ScannerUtil.nextLine(SCANNER, "새로운 내용을 입력해주세요."));
printOne(id);
}
public static int findIndexById(int id) {
for (int i = 0; i < boardArray.length; i++) {
if (boardArray[i] != null && id == boardArray[i].getId()) {
return i;
}
}
return -1;
}
public static int findEmptyIndex() {
for (int i = 0; i < boardArray.length; i++) {
if (boardArray[i] == null) {
return i;
}
}
return boardArray.length;
}
}