[ java ] 다형성 - 사각형, 삼각형, 원 등등의 모든 다각형들을 추가해서 계산할 수 있는 프로그램
페이지 정보
작성자 웹지기 댓글 0건 조회 4,046회 작성일 20-12-22 12:55본문
다형성
- 사각형, 삼각형, 원 등등의 모든 다각형들을 추가해서 계산할 수 있는 프로그램
----- Main.java -----
package 다형성_실습;
//MVC - > View
public class Main {
//I도형의 넓이를 계산하는 프로그램을 만들어보자.
//사각형, 삼격형
//도형넓이 계산기
public static void main(String[] args) {
AreaCalculator cal = new AreaCalculator();
Rectangle rect = new Rectangle(10, 5);
Triangle tri = new Triangle(10, 5);
Circle cir = new Circle(15);
//현제상태는 원하는 삼각형 사각형을 구할때마다 변경을 해줘야 하는 불편함이 있다.
double area = cal.calculate(rect);
System.out.println("넓이 : "+area);
double area2 = cal.calculate(tri);
System.out.println("넓이 : "+area2);
double area3;
area3 = cal.calculate(rect);
System.out.println("넓이 3 :"+area3);
area3 = cal.calculate(tri);
System.out.println("넓이 3 :"+area3);
area3 = cal.calculate(cir);
System.out.println("넓이 3 :"+area3);
}
}
----- areaCaculator.java -----
package 다형성_실습;
//MVC -> Controller
public class AreaCalculator {
/*
//사각형의 넓이를 구한다.
public double calculate(Rectangle rect) {
return rect.height*rect.width;
}
//오버로딩을 통한 삼각형의 넓이를 추가
public double calculate(Triangle tri) {
return tri.base*tri.height*0.5;
}
*/
//Figure를 추가하여 구조를 부모클래스 역할을 하게 하고 업캐스팅을 해준다.
public double calculate(Figure fig) {
return fig.calArea();
}
}
----- Figure.java -----
package 다형성_실습;
//MVC -> Controller
//public class Figure {
public abstract class Figure { //추상클래스 : 미구현된 클래스(설계도)
/*
public double calArea() {
return 0;
}
*/
public abstract double calArea(); //추상메소드 : 미구현된 메소드
}
----- Rectangle.java -----
package 다형성_실습;
//MVC - model
//public class Rectangle {
public class Rectangle extends Figure{
double width;
double height;
public Rectangle(double width, double height) {
super();
this.width = width;
this.height = height;
}
@Override
public double calArea() {
return width*height;
}
}
----- Triangle.java -----
package 다형성_실습;
//MVC - model
//public class Triangle {
public class Triangle extends Figure{
double base;
double height;
public Triangle(double base, double height) {
super();
this.base = base;
this.height = height;
}
@Override
public double calArea() {
return base*height*0.5;
}
}
----- Circle.java -----
package 다형성_실습;
//MVC - model
//원을 구하는 공식을 추가
public class Circle extends Figure{
double r;
public Circle(double r) {
super();
this.r = r;
}
@Override
public double calArea() {
// TODO Auto-generated method stub
return r*r*Math.PI;
}
}
댓글목록
등록된 댓글이 없습니다.