# Language/Java

명품 JAVA 프로그래밍 4장 2번

명품 자바 Programming 
Chapter4 Ex2

Q :



다음과 같은 멤버를 가지는 직사각형을 표현하는 Rectangle 클래스를 작성하라.
  • int 타입의 x1, y1, x2, y2 필드 : 사각형을 구성하는 두 점의 좌표
  • 생성자 2개 : 매개 변수 없는 생성자와 x1, y1, x2, y2의 값을 설정하는 생성자
  • void set(int x1, int y1, int x2, int y2) : x1, y1, x2, y2좌표 설정
  • int square() 사각형 넓이 리턴
  • void show() 좌표와 넓이 등 직사각형 정보의 화면 출력
  • boolean equals(Rectangle r) : 인자로 전달된 객체 r과 현 객체가 동일한 직사각형이면 true 리턴


main() 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String[] args) {
        Rectangle r = new Rectangle();
        Rectangle s = new Rectangle(1,1,2,3);
        
        r.show();
        s.show();
        System.out.println("직사각형 s의 넓이는" + s.square());
        r.set(-2,2,-1,4);
        r.show();
        System.out.println("직사각형 r의 넓이는" + r.square());
        if(r.equals(s))
            System.out.println("두 사각형은 같습니다.");
    }
cs






Solution





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package chap4ex;
class Rectangle{
    int x1, y1, x2, y2;
    int width, height;
    Rectangle(){}
    Rectangle(int x1, int y1, int x2, int y2){
        this.x1 = x1;
        this.y1 = y1;
        this.x2 = x2;
        this.y2 = y2;
    }
    void set(int x1, int y1, int x2, int y2){
        this.x1 = x1;
        this.y1 = y1;
        this.x2 = x2;
        this.y2 = y2;
    }
    int square(){
        this.width = x2 - x1;
        if(width <0) width = width * -1;
        this.height = y2 - y1;
        if(height<0) height = height * -1;
        return width * height;
    }
    void show(){
        System.out.println("x1, y1 = " + x1 +", " + y1);
        System.out.println("x2, y2 = " + x2 +", " + y2);
        System.out.println("넓이는 " + this.square());
    }
    boolean equals(Rectangle r){ 
        if((r.width == this.width) && (r.height == this.height))
            return true;
        else 
            return false;
    }
}
cs








Key Point





모든 클래스는 Object 클래스의 자식 클래스이며,

Object 클래스의 equlas 메소드는 오버라이딩하여 사용자 정의에 맞게 정의한다.








유용하셨다면 공감 버튼 ↓ 눌러주세요! 


728x90