기본 클래스 안에는 크게 2가지 구성 요소가 있습니다. 바로, 메소드와 필드입니다.

아래는 보시면 기본적인 클래스 형식의 예입니다.

public class Human {
	public static final int humanUniqId = 1
	String name;  //필드(field)
	int age;
	
	void move(){  // 메서드(method)
	}
	
	void study(){
	}
}

static int humanUniqId

⇒ 모든 Human 객체에 공통으로 적용되는 유일한 ID 번호 생성기입니다.

String name

⇒ 사람의 이름을 저장하는 변수입니다.

void move()

사람이 이동하는 행동을 나타내는 메서드입니다.

/**
 * 사람을 나타내는 클래스입니다.
 * 이름과 나이를 속성으로 가지며, 이동하고 공부할 수 있습니다.
 * getter, setter를 통해 필드에 접근합니다.
 */
public class Human {
    // 유일 ID (클래스 변수, 외부에서 직접 접근 불가)
    private static int humanUniqId = 1;

    // 인스턴스 변수들 (외부에서 직접 접근 불가)
    private String name;
    private int age;

    // 이동 메서드
    public void move() {
        System.out.println(name + "이(가) 이동합니다.");
    }

    // 공부 메서드
    public void study() {
        System.out.println(name + "이(가) 공부합니다.");
    }

    // -------- Getter & Setter -------- //

    /**
     * 이름을 반환합니다.
     * @return 현재 이름
     */
    public String getName() {
        return name;
    }

    /**
     * 이름을 설정합니다.
     * @param name 설정할 이름
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 나이를 반환합니다.
     * @return 현재 나이
     */
    public int getAge() {
        return age;
    }

    /**
     * 나이를 설정합니다.
     * @param age 설정할 나이
     */
    public void setAge(int age) {
        if (age >= 0) {
            this.age = age;
        } else {
            System.out.println("나이는 0 이상이어야 합니다.");
        }
    }

    /**
     * 유일 ID 생성 값을 가져옵니다.
     * @return 유일 ID
     */
    public static int getHumanUniqId() {
        return humanUniqId;
    }

    /**
     * 유일 ID 값을 설정합니다.
     * @param id 설정할 ID
     */
    public static void setHumanUniqId(int id) {
        if (id > 0) {
            humanUniqId = id;
        }
    }
}