명품 자바 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
'# Language > Java' 카테고리의 다른 글
명품 JAVA 프로그래밍 4장 5번 (0) | 2018.07.20 |
---|---|
명품 JAVA 프로그래밍 4장 4번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 3번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 1번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 OpenChallenge (0) | 2018.07.20 |
명품 JAVA 프로그래밍 3장 12번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 3장 11번 (0) | 2018.07.20 |