클래스·메서드

데이터는 필드에 두고, 동작은 메서드에 둡니다.

클래스

클래스는 설계도다. new Villa("역삼 빌라")가 그 설계로 객체 하나를 만든다. 필드는 객체 안의 값이고, 메서드는 그 값으로 하는 작업이다.

public class Villa {
    private String title;

    public Villa(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }
}

private 필드는 클래스 밖에서 직접 쓰지 않는다. 밖에서는 getTitle()로 읽는다. this.title은 인자 title이 아니라 필드를 가리킨다.

메서드

반환 타입이 메서드 이름 앞에 온다. 돌려줄 값이 없으면 void다. 인자는 괄호 안에 타입과 이름을 적는다.

public String label(String trade) {
    if (trade == null || trade.isBlank()) {
        return "전체";
    }
    return trade;
}

==는 같음이고, 문자열 내용 비교는 equals를 쓴다. null인 값에 equals를 바로 호출하면 예외가 난다. 위의 trade == null 검사를 먼저 둔다.

호출은 villa.getTitle()처럼 객체 뒤에 메서드 이름을 붙인다. Spring 컨트롤러가 villaService.detail(id)라고 적는 문장도 같은 호출이다.