private : 의미- 객체 자신만 쓸 수 있다.(=private에서 썼으면 메인에서 불러 쓸 수 없다 안에서만 가능하다.), 제일 엄격한 것
생략 : 두번째로 엄격. 의미 – 객체자신만 쓸 수 있다 + 동일한 패키지. 같은 폴더안에 있는 클래스에서는 쓸 수 있다. 패키지를 안줬을 경우, 같은 경로에 있는 것만 쓸 수 있다.
protected : 객체자신 + 동일한 패키지 + 상속
public : 제한이 없다. 아무나 다 쓸 수 있다.

멤버변수 : private
메소드 : public
생성자 : public
멤버변수 : 객체의 성격을 결정하는 값이기 때문에 소유자의 의지대로만 바꿀 수 있기 때문에 public(외부에서 마음대로 바꿀 수 있음)을 사용하면 안된다. 그래서 private하다.
메소드 : 클래스를 만든 사람이 정의한 거. 외부에서 아무리 호출해도 바뀔 수가 없어서. 나타내는 게 값이 아니라 행위일뿐이다. 외부에서 호출해도 바뀔 수 없어서 publi이어도 된다. 생성자도 외부에서 바꿀 수 없다.