구조적인 확장을 의미하며 공통적인 속성을 상속 받아서 차이점을 이용하여 특화시킨다. 예를 들면 종류를 예시로 들 수 있다. 자동차는 타입의 공통적인 속성을 상속 받아서 트럭, 택시, 승용차 등의 종류로 나눌 수 있다. 이처럼 타입(클래스)에 대한 구조적인 확장을 의미하는 것이 특화이다.
구성이라는 것은 포함관계로써 원소가 여러개 모여서 하나의 집합적 의미를 갖을 때를 의미한다. Class 안에서 private로 선언하는 자식 관계를 생각하면 된다.
Class(type)는 객체를 만들어내기 위한 설계도 혹은 틀을 의미하고 실체가 없다. 메모리에 할당이 되어야만 실체가 생기게 되는데 이러한 작업을 실체화라고 부른다. 실체화가 되어서 메모리에 할당이 되어야만 속성을 가질 수 있다. 코드로 클래스를 실체화하는 방법은 new를 통해 인스턴스를 선언하는 것이다.
클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다.
(참고 출처 : https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html)
레이아웃 종류는 매우 다양하다. 그 중 자주 쓰는 레이아웃은 FlowLayout, BorderLayout, GridLayout 등이 있다. 다양한 레이아웃 종류들에 대해서는 오라클 공식 홈페이지에 자세히 나와있다. (https://docs.oracle.com/javase/8/docs/api/java/awt/LayoutManager.html)