[ java ] 다형성 - 사각형, 삼각형, 원 등등의 모든 다각형들을 추가해서 계산할 수 있는 프로그램 > java

본문 바로가기

사이트 내 전체검색

java

[ java ] 다형성 - 사각형, 삼각형, 원 등등의 모든 다각형들을 추가해서 계산할 수 있는 프로그램

작성일 20-12-22 12:55

페이지 정보

작성자 웹지기 조회 4,044회 댓글 0건

본문

다형성

 - 사각형, 삼각형, 원 등등의 모든 다각형들을 추가해서 계산할 수 있는 프로그램

 

----- 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;

    }

}



추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 113건 2 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기