(1)定义一个形状类(Shape)方法:计算周长,计算面积
子类:
矩形类(Rectangle) :额外的方法:differ() 计算长宽差
圆形类(Circle)
三角形类(Triangle)
正方形类(Square) 矩形的子类
生成几个不同的形状对象,放在一个Shape类型的数组里,分别求每个形状的周长和面积。如果形状对象是一个矩形,且不是正方形,则计算长宽差。

 package com.tiger.practice;

  class Shape {

     public double length(){
return ;
} public double area() {
return ;
}
} class Rectangle extends Shape { private double width;
private double height; public Rectangle(double height,double width) {
this.height=height;
this.width = width;
} @Override
public double length() {
// TODO Auto-generated method stub
return *(width+height);
} @Override
public double area() {
// TODO Auto-generated method stub
return width*height;
} public double differ() {
return Math.abs(height-width);
} } class Square extends Rectangle { public double edge; public Square(double edge) {
super(edge,edge);
setEdge(edge);
// TODO Auto-generated constructor stub
} public double getEdge() {
return edge;
} public void setEdge(double edge) {
this.edge = edge;
}
} class Triangle extends Shape {
private double a;
private double b;
private double c; public Triangle(double a,double b,double c) {
this.a= a;
this.b = b;
this.c = c;
} @Override
public double length() {
// TODO Auto-generated method stub
return a+b+c;
} @Override
public double area() {
double p= (a+b+c)/;
// TODO Auto-generated method stub
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
} class circle extends Shape{
private double r;
public circle(double r){
this.r = r;
}
public double length(){
return 3.1415**r;
}
public double area(){
return 3.1415*r*r;
} } public class shapes { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Shape[] shapes= {
new Rectangle(,),
new circle(),
new Square(),
new Triangle(, , )
};
for(int i=;i<shapes.length;i++) {
double length=shapes[i].length();
double area=shapes[i].area();
if(shapes[i]instanceof circle) {
System.out.println("Shape("+(i+)+"): "+
"length"+String.format("%.4f", length)+",area"
+String.format("%.4f", area));
}
else {
System.out.println("Shape("+(i+)+"): "+
"length"+length+",area"+area);
if(shapes[i]instanceof Rectangle) {
Rectangle r=(Rectangle)shapes[i];
System.out.println("长宽差是: "+r.differ());
}
}
}
} }

实验四 (1):定义一个形状类(Shape)方法:计算周长,计算面积的更多相关文章

  1. 定义一个Rectangle类,该类提供getLength和getWidth方法。

    import java.util.Comparator; /** * 定义一个Rectangle类,该类提供getLength和getWidth方法.利用图1-18中的findMax例程编写 * 一种 ...

  2. java定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积

    需求如下:(1)定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积. (2)定义一个类PassObject,在类中定义一个方法pri ...

  3. 定义一个Person类,其中包括:1.定义属性:姓名、年龄、民族作为成员变量。定义静态成员变量:人数2.定义构造方法:对成员变量进行初始化。3.定义多个方法:分别显示相应的属性值,例如getName(){System.out.print("名称="+name+";"); }4.定义一个方法“成长”:实现年龄的增加,每执行一次年龄增加1

    题目显示不全,完整题目描述: (1)定义一个Person类,其中包括:1.定义属性:姓名:年龄:民族作为成员变量.定义静态成员变量:人数2.定义构造方法:对成员变量进行初始化.3.定义多个方法:分别显 ...

  4. Java初学者作业——定义一个计算器类, 实现计算器类中加、 减、 乘、 除的运算方法, 每个方法能够接收2个参数。

    返回本章节 返回作业目录 需求说明: 定义一个计算器类, 实现计算器类中加. 减. 乘. 除的运算方法, 每个方法能够接收2个参数. 实现思路: 定义计算器类. 定义计算器类中加.减.乘.除的方法. ...

  5. 34 异常机制 异常体系结构 Java把异常当做对象来处理 并定义一个基类java.lang.Throwable作为所有异常的超类 Error Exception

    异常体系结构 概念 Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类. 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Erro ...

  6. PHP加载另一个文件类的方法

    加载另一个文件类的方法 当前文件下有a.php 和b.php,想要在class b中引入class a <?php    class a    {        public $name = ' ...

  7. Eclipse快速生成一个JavaBean类的方法

    原文: https://jingyan.baidu.com/article/948f5924156866d80ff5f921.html Eclipse快速生成一个JavaBean类的方法 听语音 | ...

  8. c++ 一个h文件里面定义一个主类,然后定义多个子类

    最近遇到一个函数,在调用的时候出现问题,记录下实现过程. #ifndef MLS_DEFORMATION_H #define MLS_DEFORMATION_H #include <vector ...

  9. C++:如何正确的定义一个接口类

    C++中如何定义接口类?首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类.接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成. 而对于C++,其接口类一 ...

随机推荐

  1. 越光后端开发——ygapi(2.新建Model)

    1.新建Model 1.users数据 1.在apps/users/models.py中: from datetime import datetime from django.db import mo ...

  2. JS的基础知识回顾

    前言:JS应用在浏览器端,基于浏览器事件执行,功能十分强大,不容错过

  3. Angular记录(1)

    文档资料 箭头函数--MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Arrow_fun ...

  4. 6核 CPU导致SQL2005安装时出“无法启动服务”错

    周一新买的IBM3650M3的服务器上安装SQL server2005 安装到一半时,报"提示:SQL Server 服务无法启动."错. 换了几个操作系统版本和换了几个版本的sq ...

  5. html - 表单form

    一.表单 功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互 表单能够包含input系列标签,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含textarea.select. ...

  6. SpringBoot(七):SpringBoot整合Swagger2

    原文地址:https://blog.csdn.net/saytime/article/details/74937664 手写Api文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文 ...

  7. 调用腾讯、百度翻译API,实现游戏机翻通用程序

    最近玩了款steam独立游戏,没中文,只能自己汉化了,用腾讯跟百度的API实现了一个通用的机翻程序(只需要导入JSON文本), 同样,比较懒,还没写,先占坑

  8. 常见的cmake工程做法

    第一步,创建一个build目录存放cmake生成的中间文件: mkdir build 第二步,进入到build文件目录: cd build 第三步,cmake把代码文件生成一个makefile文件: ...

  9. vue通过extend动态创建全局组件(插件)学习小记

    测试环境:nodejs+webpack,例子是看文章的,注释为自己的理解 创建一个toast.vue文件: <template> <div class="wrap" ...

  10. Web从入门到放弃<4>

    1,插入 如下html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...