형태 클래스(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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.