4.2>. 다음과 같은 멤버를 가지는 직사각형을 표현하는 Rectangle 클래스를 작성하라.
- int 타입의 x1, y1, x2, y2 필드 : 사각형을 구성하는 두 점의 좌표 - 생성자 2개 : 매개 변수 없는 생성자와 x1, y1, x2, y2의 값을 설정하는 생성자 - void set(int x1, int y1, iny x2, int y2) : x1, y1, x2, y2좌표 설정 - int square() : 사각형 넓이 리턴 - void show() :좌표와 넓이 등 직사각형 정보의 화면 출력 예) 사각형의 좌표는 (0,0), (0,0)입니다. - boolean equals(Rectangle r) : 인자로 전달된 객체 r과 현 객체가 동일한 직사각형이면 true 리턴
Rectangle을 이용한 main() 메소드는 다음과 같으며 이 main() 메소드가 잘 작동하도록 하라. public class RectManager { 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.square()); r.set(-2,2,-1,4); r.show(); System.out.println(r.square()); if(r.equals(s)) System.out.println("두 사각형은 같습니다."); } } |
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 37 38 39 40 41 42 43 44 45 | package HW1_JAVA; class Rectang{ //Rectang class 선언 int x1,y1,x2,y2; //int 형 변수 x1,y1,x2,y2 선언 Rectang(){ //constructor Rectang 아규먼트 없을때 this.x1=0; // 객체의 x1,y1,x2,y2에 0 대입 this.y1=0; this.x2=0; this.y2=0;} Rectang(int x1, int y1, int x2, int y2){ this.x1=x1; //객체의 x1,y1,x2,y2에 인자 x1,y1,x2,y2 대입 this.y1=y1; //하는 constructor (오버로딩) this.x2=x2; this.y2=y2;} void set(int x1, int y1, int x2, int y2){ this.x1=x1; //객체의 x1,y1,x2,y2에 인자 x1,y1,x2,y2 대입하는 메소드 set this.y1=y1; this.x2=x2; this.y2=y2;} int square(){ //메소드 square 선언 int length=Math.abs(this.x2-this.x1); //밑변은 x2-x1한 것의 절대값 int height=Math.abs(this.y2-this.y1); //높이는 y2-y1한 것의 절대값 return length*height;} //밑변*높이 반환 void show(){ //메소드 show 선언, 좌표와 밑변 넓이를 화면에 출력해준다. printf를 사용하였다. System.out.printf("사각형의 좌표는 (%d,%d),(%d,%d) 입니다.\n",this.x1,this.y1,this.x2,this.y2); System.out.printf("사각형의 밑변은 %d, 높이는 %d입니다.\n",Math.abs(this.x2-this.x1),Math.abs(this.y2-this.y1));; System.out.printf("사각형의 넓이는 %d입니다.\n",square());} boolean equals(Rectang r){ //리턴값 true와 false만 있는 메소드 equals if((Math.abs(this.x2-this.x1)==Math.abs(r.x2-r.x1))&&(Math.abs(this.y2-this.y1)==Math.abs(r.y2-r.y1))) return true; //밑변길이와 높이를 비교해서 둘다 같으면 true 반환 else //아니면 false 반환 return false;}} public class Square { public static void main(String[] args) { Rectang r = new Rectang(); //인자없는 생성자로 생성한 Rectang의 객체와 레퍼런스 변수 r Rectang s = new Rectang(1,1,2,3); //인자를 넣어준 Rectang의 객체와 레퍼런스 변수 s r.show(); //r이 가리키는 객체의 show 메소드 호출 s.show(); //s가 가리키는 객채의 show 메소드 호출 System.out.println(s.square()); //s가 가리키는 객체의 square 메소드 호출 후 리턴 값 출력 r.set(-2,2,-1,4); //r이 가리키는 객체의 set 메소드 호출 r.show(); //r이 가리키는 객체의 show 메소드 호출 System.out.println(r.square()); //r이 가리키는 객체의 square 메소드 호출 후 리턴 값 출력 if(r.equals(s)) //만약 r.equals(s)가 ture를 반환하면(r과 s 비교) System.out.println("두 사각형은 같습니다."); // 해당 스트링 출력 }} | cs |
'컴퓨터 & 프로그래밍 & 전자공학 > JAVA' 카테고리의 다른 글
상속 클래스 (0) | 2017.06.18 |
---|---|
ArrayUtility class (0) | 2017.06.18 |
돈 단위 나누기 (0) | 2017.06.18 |
2차원 배열 (0) | 2017.06.18 |
정수 오름차순 정렬기 (0) | 2017.06.18 |