RectangularShape 클래스
RectangularShape 클래스
RectangularShape는 기하 구조가 사각형 프레임으로 정의되는 여러 Shape 객체의 기본 클래스예요. 이 클래스는 자체적으로 특정 기하 구조를 직접 지정하지 않지만, 한 범주의 Shape 객체가 상속받는 조작 메서드를 제공해요.
본문
이 클래스가 제공하는 조작 메서드는 사각형 프레임을 조회·수정하는 데 사용할 수 있어요. 프레임은 하위 클래스가 자신의 기하 구조를 정의하는 기준점이 돼요.
public abstract class RectangularShape
extends Object
implements Shape, Cloneable
직속 하위 클래스
이 클래스를 확장하는 대표적인 도형은 다음과 같아요.
Rectangle2D— 사각형RoundRectangle2D— 모서리가 둥근 사각형Ellipse2D— 타원Arc2D— 호
타원과 호는 프레임 사각형에 내접하거나 그 일부를 이룬다는 특징이 있어요.
주요 메서드
getX()/getY()— 프레임 사각형의 왼쪽 위 모서리를 반환해요.getWidth()/getHeight()— 프레임의 폭·높이를 반환해요.getMinX()/getMinY()/getMaxX()/getMaxY()— 경계 값을 반환해요.getCenterX()/getCenterY()— 중심을 반환해요.getFrame()/setFrame(...)— 프레임 사각형을 조회·설정해요.isEmpty()— 폭이나 높이가 0 이하인지 확인해요.contains(...)— 히트 테스트.getPathIterator(AffineTransform)— 경로 반복자.getBounds2D()— 경계 사각형을 반환해요.
추상 메서드
getX(), getY(), getWidth(), getHeight(), setFrame(...), getBounds2D() 등은 하위 클래스가 구현해야 해요.
직사각형 프레임 기반 도형의 공통 조작을 한곳에 모아두어, 하위 클래스에서 좌표 저장 방식만 다르게 구현하면 돼요.