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를 이용하여 재설정 및 저장하는 메서드이다.
'☕Java > Java 프로젝트' 카테고리의 다른 글
[20210526] 고객관리시스템 수정 - CustomerInfoManager.java (0) | 2021.05.26 |
---|---|
[20210526] 고객관리시스템 수정 - CustomerInfo.java (0) | 2021.05.26 |
[20210525] 고객정보관리시스템 - 실행부 (0) | 2021.05.25 |
[20210525] 고객정보관리시스템 - 메서드 구현 (0) | 2021.05.25 |
[20210525] 고객 정보관리 예제 - 데이터 클래스 (0) | 2021.05.25 |