Motivation #2

Yullc·2025년 3월 22일
post-thumbnail

이제 목록을 보여주는 기능을 추가 할 건데, Motivation 정보가 나오도록 할거고 만약 길이가 너무 길면 단어를 잘라서 목록에 저장하도록 할거야. 그리고 접근제한자를 사용해 클래스간의 결합도를 낮출거야.

else if (cmd.equals("list")) {
                if (motivations.size() == 0) {
                    System.out.println("등록된 moti 없어");
                    continue;
                }
                System.out.println("=".repeat(40));
                System.out.printf("   id    /     source      /      body        \n");
                for (int i = motivations.size() - 1; i >= 0; i--) {
                    Motivation motivation = motivations.get(i);
                    if (motivation.getSource().length() > 7) {
                        System.out.printf("   %d    /     %s     /      %s        \n", motivation.getId(), motivation.getSource().substring(0, 5) + "...", motivation.getBody());
                        continue;
                    }
                    System.out.printf("   %d    /     %s        /      %s        \n", motivation.getId(), motivation.getSource(), motivation.getBody());
                }
                System.out.println("=".repeat(40));
            }
            else {
                System.out.println("사용할 수 없는 명령어야");
                continue;
            }
  • 그래서 살짝 list 부분만 고쳐볼건데 음.. 일단 아무것도 등록이 안되어있을 경우가 있을거라고 생각해서 만약 motivation.szie==0일때 즉 아무것도 없을때 "등록된 moti가 없어" 라고 출력해줄거야.

  • 이제 for문을 돌면서 목록들을 보여줄건데 그러면 motivation객체를 보여 주면 되겠지? 여기에 id, soirce, body값들이 들어있으니까 그러면 get함수를 사용해서 보여줄거야.

  • 여기서 조심해야할게 2가지가 있는데 먼저 list에 있는 값들을 보여줄 때 번호가 내림차순이 아니라 오름차순이 되어야 사용자가 제일 최근에 추가된 값들부터 볼 수 있어. 그래서 i=motivation.size()-1 부터 시작하도록 설정했고 i는 --로 감소하도록 설정했어.

  • 또 source가 너무 길면 보기가 좀 좋진 않으니까 source의 길이가 7 초과면 substring을 이용해 0부터5까지만 나오게 출력할거야. 이러면 사용자들이 가독성이 좀 좋아질거야.

이제 우리가 해야할게 접근제한자를 사용해서 다른클래스에서 함부러 사용 못하게 설정하도록 할거야,

class Motivation {
    private int id;
    private String body;
    private String source;

    public Motivation(int id, String body, String source) {
        this.id = id;
        this.body = body;
        this.source = source;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }
  • 그러기 위해선 Motivation클래스에 있는 변수들을 private를 붙여서 다른 클래스에서 함부러 접근을 못하게 할거야.

  • 대신 Getter랑 setter를 이용해서변수들을 호출하는 형식으로 바꿨어

profile
아자아자자

0개의 댓글