Coding 공부/Java

[Java_Exam] Board#2

CBJH 2024. 2. 29.
728x90
반응형

1. 개선된 내용

1.1 UserSVC Class

  • 멤버  Map<String, User> userMap;  //HashMap 컬렉션을 사용해 클래스와 문자열을 각각 키와 밸류값으로 저장
  • 생성자에서 HashMap 인스턴스 생성(Heap 영역에 메모리 할당), 5명 회원 초기화
  • private void initUser()   //5명 회원 초기화 메서드
  • public boolean authUser(String id, String passwd)   //아이디, 비밀번호를 받아 컬렉션에 있으면 true를 반환
  • public void createUser(Scanner sc) //동일한 유저명이 없다면 회원 추가
  • public User login(Scanner sc) //아이디, 비밀번호가 일치하는 컬렉션이 있으면 User 객체를 반환(클래스를 return하면 얕은 복사가 된다)
  • public void listUser()  //컬렉션의 value값만 sysout해주는 메서드

1.2 BoardMain Class

  • 게시글 수정하기, 게시글 수정하기, 등록된 회원 확인하기 메서드를 switch case문으로 실행한다.
  • try-catch문을 사용해서 정수값이 아니라면 생기는 예외   menu = sc.nextInt();  부분을 처리했다.

1.3 BoardSVC_t Class

  • public void memberWriteArticle(Scanner sc, User user)  // UserSVC Class의 public User login(Scanner sc) 메서드에서 반환받은 user를 매개변수로 받아 회원 글쓰기를 해 ArrayList<BoardVO> boardList 컬렉션에 BoardVO 객체를 추가함.
  • public void changeArticle(Scanner sc)   //제목, 작성자(유저명), 비밀번호를 입력받아 모두 일치하는 글이 있다면 찾아서 동일한 글을 모두 수정함. 
  • 수정은 BoardVO객체의 setContent(content)메서드를 호출하여 값을 수정한다.
  • BoardVO객체의 값을 입력받거나 수정할 때 scanner.next()로 받아 띄어쓰기를 허용하지 않았었는데 scanner.nextLine()을 받고 scanner.nextInt()이후에 개행문자처리를 해줘서 띄어쓰기를 해도 값이 저장되도록 수정함.

 

2. 코드부분

BoardVO : 게시판 멤버 클래스
BoardSVC : 게시판 기능 클래스

 

User : 유저 멤버 클래스
UserSVC : 유저 기능 클래스

 

댓글