public인 파일 이름과 같은 이름을 가지는 구성 요소를 요구한다.
abstract: 해당 클래스가 추상적이게 된다. 추상 클래스는 최종적일 수 없다.
final: 해당 클래스가 최종적이게 된다. 더이상 해당 클래스를 상속 받을 수 없다는 뜻이며, 최종 클래스는 추상적일 수 없다.
extends: 상속 받을 클래스를 지정한다. 생략시 Object클래스를 상속 받는다.
implements: 구현할 인터페이스를 한 개 이상 지정한다. 생략시 구현하는 인터페이스가 없다.
객체란 참조 타입인 값을 의미한다. 기초 타입의 값을 객체라고 하지 않는다.
객체화 : 어떠한 참조 타입을 객체로 만들기 위해new키워드를 이용하며new [참조타입이름]([생성자 전달인자,...]?)형식으로 객체화한다.
즉, 원시타입(기본타입)은 객체화 할 수 없다.
extends 키워드를 이용하여 어떠한 클래스를 상속 받을지 설정할 수 있다.Object클래스를 상속 받는다.Object 클래스를 상속 받는다는 것으로 귀결된다.
위에서 보다시피 protected는 같은 패키지이거나 상속관계에 있을때만 접근 할 수있게 된다.

위에 package와 Creature 클래스의 패키지는 다르기 때문에 protected 속성으로 인해 Instance클래스에서 객체화로 접근을 할 수 없게 된다.
한 패키지 안에 클래스를 또 생성하고 싶을 경우 public을 사용해서는 클래스를 생성할 수 없다. 그 이유는 public으로 생성된 클래스는 그 파일명과 이름이 같아야 하는데 두개의 public이 붙은 클래스로 생성할 경우 파일명과 클래스의 이름에서 관계가 모호해짐으로 제한자를 붙이지 않은 그냥 Class의 '무엇'으로 클래스를 생성해야 한다.