定义一个形状类(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<Song> songList;
 8
 9     public SongDao() {
10
11     }
12
13     public SongDao(List<Song> 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<Song> getSongList() {
57         return songList;
58     }
59
60     public void setSongList(List<Song> 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);}@Overridepublic double length() {// TODO Auto-generated method stubreturn 2*(width+height);}@Overridepublic double area() {// TODO Auto-generated method stubreturn 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<shapes.length;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);}@Overridepublic double length() {// TODO Auto-generated method stubreturn a+b+c;}@Overridepublic double area() {double p= (a+b+c)/2;// TODO Auto-generated method stubreturn 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

定义一个形状类(Shape)方法:计算周长,计算面积。子类: 矩形类、圆形类、三角形类...相关推荐

  1. 【设计一个抽象的形状类Shape,方法:求周长和求面积】

    [设计一个抽象的形状类Shape,方法:求周长和求面积.shape类的子类:Rect(矩形),Circle(圆形).Rect类的子类:Square(正方形)不同的子类会有不同的计算周长和面积的方法.] ...

  2. 设计一个形状类(接口)Shape,方法:求周长和求面积形状类(接口)的子类(实现类): Rect(矩形) Circle(圆形)Rect类的子类: Square(正方形)不同的子类会有不同的计算周长和面

    设计一个形状类(接口)Shape,方法:求周长和求面积 形状类(接口)的子类(实现类):     Rect(矩形)     Circle(圆形) Rect类的子类:     Square(正方形)   ...

  3. 设计一个形状类(接口)Shape,方法:求周长和求面积形状类(接口)的子类(实现类):

    设计一个形状类(接口)Shape,方法:求周长和求面积 形状类(接口)的子类(实现类): package zuoye2;public interface Shape {// 求面积方法double g ...

  4. 设计一个形状类(接口)Shape,方法:求周长和求面积

    3.设计一个形状类(接口)Shape,方法:求周长和求面积形状类(接口)的子类(实现类):Rect(矩形)Circle(圆形)Rect类的子类:Square(正方形)不同的子类会有不同的计算周长和面积 ...

  5. Java基础 接口实现 设计一个形状类(接口)Shape,方法:求周长和求面积

    题目: 设计一个形状类(接口)Shape,方法:求周长和求面积形状类(接口)的子类(实现类);:Rect(矩形),Circle(圆形)Rect类的子类:Square(正方形)不同的子类会有不同的计算周 ...

  6. python定义一个圆类_python设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性。编写构造方法和其他方法,计算周长和面积。...

    ** Python:设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性.编写构造方法和其他方法,计算周长和面积.请编写程序验证类的功能. class Circle: def -init-( ...

  7. python设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性。编写构造方法和其他方法,计算周长和面积。

    ** Python:设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性.编写构造方法和其他方法,计算周长和面积.请编写程序验证类的功能. class Circle: def -init-( ...

  8. java设计一个形状shape_编程定义一个图形接口 Shape, 内含2个抽象方法 get... JAVA编程题:编一个程序包含一个接口 shape(该接......

    导航:网站首页 > 编程定义一个图形接口 Shape, 内含2个抽象方法 get... JAVA编程题:编一个程序包含一个接口 shape(该接... 编程定义一个图形接口 Shape, 内含2 ...

  9. python输入半径计算公式_Python:09设计Circle类包括圆心半径、颜色属性,编写类方法计算周长与面积(2种方法)...

    设计一个Circle类,包括圆心位置.半径.颜色属性.编写构造方法进行属性初始化,编写类方法计算周长与面积. 方法一 class Circle: location=(0,0) r=0 color=&q ...

  10. Python:09设计Circle类包括圆心半径、颜色属性,编写类方法计算周长与面积(2种方法)

    设计一个Circle类,包括圆心位置.半径.颜色属性.编写构造方法进行属性初始化,编写类方法计算周长与面积. 方法一 class Circle:      location=(0,0)      r= ...

最新文章

  1. dispatch callback ant design pro 网络请求回调函数
  2. The Long-Term Stability of Ecosystems
  3. 数据中心可以不设置柴发吗?
  4. tomcat 相关以及安装时遇到的一些问题整理
  5. wireshark tcp抓包分析_网络分析系列之八_使用Wireshark抓包
  6. Java并发编程以及并发须知的几个概念:什么是线程安全?
  7. SpringBoot基础篇(一):Spring Boot入门
  8. golang高并发的理解
  9. uml建模工具_Visual Paradigm 教程[UML]:绘制UML配置文件图
  10. Timemator for Mac(自动化计时管理软件)
  11. STKX组件技术在星地链路中的仿真模式研究
  12. 冰点还原精灵破解版|冰点还原精灵中文破解版下载(附冰点还原精灵注册机及许可证密钥)
  13. wav怎么转换成mp3?
  14. SQL server 2000个人版 下载地址
  15. 国内能用的国际邮箱推荐哪个?公司邮箱号码大全
  16. App云测试平台免费功能汇总
  17. IE浏览器如何实现断点续传
  18. hadoop 报错 there appears to be a gap in the edit log. we expected txitd 1, but got txid 14444
  19. 中级软件设计师简要知识点(5):网络与多媒体基础知识
  20. 高效的磁力搜索引擎 -_高效的企业测试-结论(6/6)

热门文章

  1. 邮件协议POP3/IMAP/SMTP服务的区别 常用邮箱的 IMAP/POP3/SMTP 设置
  2. matlab 实现disparity,Matlab里的disparity map 计算
  3. 无人驾驶5: 贝叶斯公式
  4. 三秒让你学会公私网地址转换(NAT)
  5. linux恢复rm删除文件ext4,EXT4中恢复使用rm命令误删除的文件
  6. 【离散数学】单射、满射与双射
  7. 处理未支付订单30分钟后取消方案分析
  8. 第七章软件结构的健壮性——健壮性与正确性
  9. java应届生面试收集总结
  10. 做网站必备!该文介绍下国内服务器与国外服务器的区别