본문 바로가기
Study/JAVA

[20210612] 자바 기초 코딩 실습

by 햄리뮤 2021. 6. 12.
반응형

 

아~~~ 오류있다~~~ 

package studyGroup.june.two;

public class BoardApplication {

  public static void main(String[] args) {

  BoardService boardService = new BoardServiceImpl();
  boardService.init();
  }
}

 

package studyGroup.june.two;

public class Board {
  private int boardId;
  private String title;
  private String contents;
  private Member member;

  public int getBoardId() {
    return boardId;
  }

  public void setBoardId(int boardId) {
    this.boardId = boardId;
  }

  public String getTitle() {
    return title;
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public String getContents() {
    return contents;
  }

  public void setContents(String contents) {
    this.contents = contents;
  }

  public Member getMember() {
    return member;
  }

  public void setMember(Member member) {
    this.member = member;
  }

  @Override
  public String toString() {
    return "Board{" +
        "boardId=" + boardId +
        ", title='" + title + '\'' +
        ", contents='" + contents + '\'' +
        ", member=" + member +
        '}';
  }
}

 

package studyGroup.june.two;

public class Member {
  private int memberId;
  private String userName;
  private String password;

  public int getMemberId() {
    return memberId;
  }

  public void setMemberId(int memberId) {
    this.memberId = memberId;
  }

  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  @Override
  public String toString() {
    return "Member{" +
        "memberId=" + memberId +
        ", userName='" + userName + '\'' +
        ", password='" + password + '\'' +
        '}';
  }
}

 

package studyGroup.june.two;

public interface BoardService {

  void init();
  void createMember();
  void createBoardByMemberNo();
  void selectBoardByMemberNo();
  void deleteBoardByMemberNo();
}

 

package studyGroup.june.two;

import java.io.IOException;
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Map;
import java.util.Scanner;

/*
- int 값에 숫자가 아닌 문자를 넣었을시 예외처리
 */
public class BoardServiceImpl implements BoardService {

  Map<Integer, Board> map = new HashMap<>();
  Scanner scanner = new Scanner(System.in);
  int mId = 0;
  int bId = 0;

  @Override
  public void init() {
    try {
      while (true) {
        System.out.println("== 메뉴 ==");
        System.out.println("1. 맴버 가입");
        System.out.println("2. 맴버 아이디로 게시판 글쓰기");
        System.out.println("3. 맴버 아이디로 게시글 조회");
        System.out.println("4. 게시판 삭제");
        System.out.println("5. 종료");
        System.out.println("==========");
        int input = scanner.nextInt();

        switch (input) {
          case 1:
            createMember();
            break;
          case 2:
            createBoardByMemberNo();
            break;
          case 3:
            selectBoardByMemberNo();
            break;
          case 4:
            deleteBoardByMemberNo();
            break;
          case 5:
            quit();
            break;
        }
      }
    } catch (InputMismatchException e) {
      System.out.println("숫자가 아니자나~!");
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }
  }

  @Override
  public void createMember() {
    Board board = new Board();
    Member member = new Member();

    System.out.println("== 가입 ==");
    System.out.println("user name 을 입력하세요.");
    member.setUserName(scanner.next());

    System.out.println("password 를 입력하세여.");
    member.setPassword(scanner.next());
    member.setMemberId(mId);

    board.setMember(member);
    System.out.println(member);
    map.put(mId, board);
    mId++;
  }

  // - 맴버 아이디 별로 게시글 작성하기
  @Override
  public void createBoardByMemberNo() throws InputMismatchException {
    System.out.println("== 게시글 입력하기 ==");
    System.out.println("맴버 아이디를 입력해주세요.");
    int input = scanner.nextInt();

    map.forEach((key, value) -> {
      if (map.get(key).getMember().getMemberId() == input) {
        System.out.println(map.get(key).getMember().getUserName() + "님 글을 입력해 주세요.");
        System.out.println("글 제목을 입력해주세요.");
        map.get(key).setTitle(scanner.next());
        System.out.println("글 내용을 입력해주세요.");
        map.get(key).setContents(scanner.next());
        map.get(key).setBoardId(bId);

        System.out.println(map.get(key).toString());
        bId++;
      } else {
        System.out.println("없는 사용자 입니다.");
        throw new NullPointerException();
      }
    });
  }

  // - memberId로 게시글을 조회 했을시 없는 사용자일때 예외로 던지고 예외처리
  @Override
  public void selectBoardByMemberNo() throws InputMismatchException {
    System.out.println("== 게시글 조회하기 ==");
    System.out.println("맴버 아이디를 입력해주세요.");
    int input = scanner.nextInt();

    map.forEach((key, value) -> {
      if (map.get(key).getMember().getMemberId() == input) {
        System.out.println(map.get(key));
      } else {
        System.out.println("없는 사용자 입니다.");
        throw new NullPointerException();
      }
    });
  }

  // - 삭제시 userName과 password 확인 후 삭제
  @Override
  public void deleteBoardByMemberNo() throws InputMismatchException {
    try {
      System.out.println("삭제하실 board id를 입력해주세요.");
      int input = scanner.nextInt();
      map.forEach((key, value) -> {
        if (map.get(key).getBoardId() == input) {
          System.out.println("user name를 입력해주세요.");
          String userName = scanner.next();
          if (map.get(key).getMember().getUserName().equals(userName)) {
            System.out.println("password를 입력해 주세요.");
            String password = scanner.next();
            if (map.get(key).getMember().getPassword().equals(password)) {
              System.out.println("로그인 되었습니다.");
              map.remove(key);
              System.out.println("게시글을 삭제합니다.");
            }
          }
        }
      });
    } catch (Exception e) {

    }
  }

  public void quit() throws IOException {
    System.out.println("종료합니다.");
    System.out.close();
  }
}

 

 

 

 

 

 

반응형

'Study > JAVA' 카테고리의 다른 글

[20210614] 자바 기초 코딩 실습  (0) 2021.06.14
[20210613] JAVA 스터디  (0) 2021.06.13
[20210606] 자바 기초 코딩 실습  (0) 2021.06.11
[20210606] JAVA 스터디  (0) 2021.06.06
[20210530] JAVA 스터디  (0) 2021.05.30

댓글