☕Java/Java 프로젝트
[20210520] Java 인터페이스 프로젝트
캔
2021. 5. 21. 10:07
Shape 인터페이스를 자식 클래스인 Circle, Triangle, Rectangle이 상속받는 구조로 되어있는 프로젝트이다. Shape 인터페이스에서는 draw()와 save()라는 추상 메서드를 가지고 있으며, 각각의 자식 클래스들이 두 메서드를 오버라이드하여 사용한다. 각 클래스들은 radius, width, height, area를 private으로 선언하였다.
//Circle.java
package Day8;
public class Circle implements Shape {
private double area;
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public void draw() {
System.out.println("원을 그립니다. 원의 넓이는:" + (radius * radius * Math.PI) + "입니다.");
}
@Override
public void save() {
double a = (radius * radius * Math.PI);
setArea(a);
}
public void setArea(double area) {
this.area = area;
}
public double getRadius() {
return radius;
}
public double getArea() {
return area;
}
}
//Triangle.java
package Day8;
public class Triangle implements Shape {
private double area;
private double width, height;
public Triangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public void draw() {
System.out.println("삼각형을 그립니다. 삼각형의 넓이는:" + ((width * height) / 2) + "입니다.");
}
@Override
public void save() {
double a = ((width * height) / 2);
setArea(a);
}
public void setArea(double area) {
this.area = area;
}
public double getWidth() {
return width;
}
public double getHeight() {
return height;
}
public double getArea() {
return area;
}
}
//Rectangle.java
package Day8;
public class Rectangle implements Shape {
private double area;
private double width, height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public void draw() {
System.out.println("사각형을 그립니다. 사각형의 넓이는:" + (width * height) + "입니다.");
}
@Override
public void save() {
double a = (width * height);
setArea(a);
}
public void setArea(double area) {
this.area = area;
}
public double getWidth() {
return width;
}
public double getHeight() {
return height;
}
public double getArea() {
return area;
}
}
draw 메서드는 원의 경우 radius를, 삼각형과 사각형의 경우 width와 height를 객체 생성 시 입력받아 그 면적을 구해 메시지를 출력하는 메서드이다. save 메서드의 경우 면적을 계산하여 각각의 도형 클래스의 private으로 선언된 변수를 setter를 이용하여 재설정 및 저장하는 메서드이다.