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("두 사각형은 같습니다."); // 해당 스트링 출력
}}