이 글은 이것이 자바다를 참고하여 작성되었습니다.

- public, protected, default, private 네 종류
: 클래스에 접근할 수 있는 접근 제한 : public, default
default 접근 제한
class 클래스 {...}
- 클래스를 선언할 때 public을 생략했다면 클래스는 default 접근 제한을 가진다.
- 같은 패키지에서는 아무런 제한이 없지만 다른 패키지에서는 사용할 수 없도록 제한된다.
public 접근 제한
public class 클래스 {...}
- 제한이 없다.
: 생성자에 접근할 수 있는 접근 제한 : public, protected, default, private
public class ClassName { [public|protected|prviate] ClassName(...){...} }
- 클래스에 생성자를 선언하지 않으면 컴파일러에 의해 자동적으로 기본 생성자가 추가된다. 자동으로 생성되는 기본 생성자의 접근 제한은 클래스의 접근 제한과 동일하다.
: public, protected, default, private
// 필드 선언 [public|protected|prviate] [static] 타입 필드; // 메소드 선언 [public|protected|prviate] [static] 리턴 타입 메소드(...){...};
: 데이터는 외부에서 접근할 수 없도록 막고 메소드는 공개해서 외부에서 메소드를 통해 데이터에 접근하도록 유도한다.
- Setter 메소드 : 메소드를 통해서 데이터를 변경.
- Getter 메소드 : 메소드로 필드값을 가공한 후 외부로 전달.
필드 타입이 boolean일 경우 Getter는 get으로 시작하지 않고 is로 시작하는 것이 관례- 만약 외부에서 필드값을 읽을 수만 있고 변경하지 못하도록 하려면(읽기 전용) Getter 메소드만 선언해도 좋고 Setter 메소드를 private 접근 제한을 갖도록 선언해도 좋다.
: 메타데이터(metadata)라고 볼 수도 있다. 메타데이터란 애플리케이션이 처리해야 할 데이터가 아니라, 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보.