형태 클래스(Shape) 방법을 정의합니다. 둘레를 계산하고 면적을 계산합니다.하위 클래스: 직사각형 클래스, 원형 클래스, 삼각형 클래스...

19952 단어
형태 클래스(Shape) 방법 정의: 둘레 계산, 면적 계산
하위 클래스:직사각형 클래스(Rectangle):추가 방법:differ() 길이 및 너비 계산
원형 클래스(Circle)
삼각형 클래스(Triangle) 정사각형 클래스(Square) 사각형의 하위 클래스는 여러 가지 다른 형상 대상을 생성하여 Shape 유형의 배열에 놓고 각각의 모양의 둘레와 면적을 구한다.모양 객체가 사각형이 아닌 사각형이면 길이와 너비의 차이가 계산됩니다.
Circle.java
 1 package ex8;
 2 
 3 import java.util.List;
 4 
 5 public class SongDao {
 6     
 7     private List songList;
 8     
 9     public SongDao() {
10         
11     }
12 
13     public SongDao(List songList) {
14         super();
15         this.songList = songList;
16     }
17 
18 //      
19     public void add(Song song) {
20         songList.add(song);
21     }
22     
23 //     
24 //     id 
25     public Song search(int sid) {
26         for(Song song : songList) {
27             if(song.getSid()==sid){
28                 return song;
29             }
30         }
31         return null;
32     }
33 //     
34     public Song search(Song song) {
35         if(song==null) {
36             return null;
37         }
38         return search(song.getSid());
39     }
40     
41 //     
42 // id 
43     public void delete(int sid) {
44         Song song=search(sid);
45         if(song!=null) {
46             songList.remove(song);
47         }
48     }
49 // 
50     public void delete(Song song) {
51         if(song!=null) {
52             delete(song.getSid());
53         }
54     }
55     
56     public List getSongList() {
57         return songList;
58     }
59 
60     public void setSongList(List songList) {
61         this.songList = songList;
62     }
63 
64 
65     
66     
67 }

Rectangle.java
package ex4_1;

public class Rectangle extends Shape {

    private double width;
    private double height;


    public Rectangle(double height,double width) {
        super();
        // TODO Auto-generated constructor stub
        setHeight(height);
        setWidth(width);
    }

    @Override
    public double length() {
        // TODO Auto-generated method stub
        return 2*(width+height);
    }

    @Override
    public double area() {
        // TODO Auto-generated method stub
        return width*height;
    }

    public double differ() {
        return Math.abs(height-width);
    }
    
    public double getWidth() {
        return width;
    }

    public void setWidth(double width) {
        this.width = width;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }

}

Shape.java
package ex4_1;

public class Shape {
    
    public double length(){
        return 0;
    }
    
    public double area() {
        return 0;
    }
}

Square.java
 1 package ex4_1;
 2 
 3 public class Square extends Rectangle {
 4     
 5     public double edge;
 6 
 7     public Square(double edge) {
 8         super(edge,edge);
 9         setEdge(edge);
10         // TODO Auto-generated constructor stub
11     }
12 
13     public double getEdge() {
14         return edge;
15     }
16 
17     public void setEdge(double edge) {
18         this.edge = edge;
19     }
20 
21     
22 }

Tester.java
package ex4_1;

public class Tester {

    public static void main (String[] args) {
        Shape[] shapes= {
            new Rectangle(5,10),
            new circle(5),
            new Square(3),
            new Triangle(3, 4, 5)
        };
        
        for(int i=0;i) {
            double length=shapes[i].length();
            double area=shapes[i].area();
            if(shapes[i]instanceof circle) {
                System.out.println("Shape("+(i+1)+")"+
                        "length"+String.format("%.2f", length)+",area"
                        +String.format("%.2f", area));
            }
            else {
                        System.out.println("Shape("+(i+1)+")"+
                            "length"+length+",area"+area);
                    if(shapes[i]instanceof Rectangle) {
                        Rectangle r=(Rectangle)shapes[i];
                        System.out.println(" "+r.differ());
                    }
            }
        }
    }
}

Triangle.java
package ex4_1;

public class Triangle extends Shape {
    private double a;
    private double b;
    private double c;
    
    public Triangle(double a,double b,double c) {
        super();
        // TODO Auto-generated constructor stub
        setA(a);
        setB(b);
        setC(c);
    }

    @Override
    public double length() {
        // TODO Auto-generated method stub
        return a+b+c;
    }

    @Override
    public double area() {
        double p= (a+b+c)/2;
        // TODO Auto-generated method stub
        return Math.sqrt(p*(p-a)*(p-b)*(p-c));
    }

    public double getA() {
        return a;
    }

    public void setA(double a) {
        this.a = a;
    }

    public double getB() {
        return b;
    }

    public void setB(double b) {
        this.b = b;
    }

    public double getC() {
        return c;
    }

    public void setC(double c) {
        this.c = c;
    }
}

 
전재 대상:https://www.cnblogs.com/kazama/p/10181056.html

좋은 웹페이지 즐겨찾기