Linux参考文章

定义 Shape 类表示一般二维图形。Shape 具有抽象方法 area 和 perimeter,分别计算形状的面积和周长。试定义一些二维形状类(如矩形、三角形、圆形等),这些均为 Shape 类的子类并计算出这些形状的面积和周长,打印输出相关信息。

形状类:

public abstract class Shape {

public abstract double area();

public abstract double perimeter();

}

矩形类:

public class Rectangle extends Shape {

private double length;

private double width;

public double getLength() {

return length;

}

public void setLength(double length) {

this.length = length;

}

public double getWidth() {

return width;

}

public void setWidth(double width) {

this.width = width;

}

@Override

public double area() {

return getLength() * getWidth();

}

@Override

public double perimeter() {

return 2 * (getWidth() + getWidth());

}

}

三角形类:

public class Triangle extends Shape {

private double a, b, 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;

}

@Override

public double area() {

double p = (getA() + getB() + getC()) / 2;

return Math.sqrt(p * (p - getA()) * (p - getB()) * (p - getC()));

}

@Override

public double perimeter() {

return getA() + getB() + getC();

}

}

圆形类:

public class Circle extends Shape {

private double diameter;

public double getDiameter() {

return diameter;

}

public void setDiameter(double diameter) {

this.diameter = diameter;

}

@Override

public double area() {

return Math.PI * Math.pow(getDiameter() / 2, 2);

}

@Override

public double perimeter() {

return Math.PI * getDiameter();

}

}

测试代码:

public class Test {

public static void main(String [] args){

Rectangle rec = new Rectangle();

rec.setLength(10);

rec.setWidth(5);

double rec_area = rec.area();

double rec_perimeter = rec.perimeter();

System.out.println("矩形的面积:"+rec_area+",周长"+rec_perimeter);

Triangle tri = new Triangle();

tri.setA(3);

tri.setB(4);

tri.setC(5);

double tri_area = tri.area();

double tri_perimeter = tri.perimeter();

System.out.println("三角形的面积:"+tri_area+",周长"+tri_perimeter);

Circle cir = new Circle();

cir.setDiameter(10);

double cir_area = cir.area();

double cir_perimeter = cir.perimeter();

System.out.println("圆形的面积:"+cir_area+",周长"+cir_perimeter);

}

}

java抽象方法实例_Java 抽象类和抽象方法实例相关推荐

  1. java抽象方法声明_java抽象类和抽象方法

    一.什么是抽象类和抽象方法 没有具体功能的实现,通过子类继承后重写方法来实现一定约束的类称之为抽象类,抽象类必须被abstract修饰.抽象方法就是只有方法声明,没有方法体的方法.抽象类的使用一般通过 ...

  2. java类和抽象方法课件_java抽象类和抽象方法(转载)

    抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类.抽象类有点类似"模板"的作用,目的是根据其格式来创建和修改新的类.对象不能由 抽象类直接创建,只可以通过抽象类派 ...

  3. java 定义抽象变量_Java抽象类和抽象方法定义与用法实例详解

    本文实例讲述了Java抽象类和抽象方法定义与用法.分享给大家供大家参考,具体如下: 一.Java抽象类 1.抽象类的说明 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都 ...

  4. java sftp 实例_JAVA实现SFTP的实例

    用Java EE 5实现的网上书店实例  李力 (ada.li@sun.com) 2007/10/23  本教程介绍了如何使用NetBeans IDE 以及GlassFish 构建一个典型的Java ...

  5. java 模拟停车_Java多线程编程小实例模拟停车场系统

    下面分享的是一个Java多线程模拟停车场系统的小实例(Java的应用还是很广泛的,哈哈),具体代码如下: Park类 public class Park { boolean []park=new bo ...

  6. java 类变量 赋值_Java 中类变量,实例变量,局部变量的赋值

    在 Java 中,类变量,实例变量可以不经过主动赋值就直接使用,而局部变量在不主动赋值的情况下,是无法使用的.在下面分析一下这个原因: 1. 类变量 类变量的赋值有两次,两次都在类加载的过程中,类加载 ...

  7. java抽象类的实现_JAVA抽象类和抽象方法(abstract)

    一.抽象(abstract)的使用 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]. 我们都知道,父类是将子类所共同拥有的属性和 ...

  8. java 如何判断抽象类_JAVA抽象类和抽象方法(abstract)

    一.抽象(abstract)的使用 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]. 我们都知道,父类是将子类所共同拥有的属性和 ...

  9. java的继承实例_Java继承和多态实例

    我们知道面向对象的三大特性是封装.继承和多态.然而我们有时候总是搞不清楚这些概念.下面对这些概念进行整理, 为以后面向抽象的编程打下坚实的基础. 封装的概念还是很容易理解的.如果你会定义类,那么相信你 ...

最新文章

  1. Hadoop_MapReduce的基本应用
  2. Java 高频面试题:聊一聊 JUC 下的 LinkedBlockingQueue
  3. .Net中删除数据前进行外键冲突检测
  4. 行业场景智能应用,解锁边缘计算时代新机遇
  5. 分配的访问权限的展台应用:最佳做法
  6. python 多个列表_Python同时迭代多个列表
  7. ASP.NET Core快速入门(第6章:ASP.NET Core MVC)--学习笔记
  8. 自定义Cassandra数据类型
  9. C语言中局部变量和全局变量 变量的存储类别
  10. 图谱问答-理解query
  11. Centos KVM 基本安装过程
  12. java的循环控制结构有哪些_java中的控制结构(if,循环)详解
  13. Win11推送如何操作 Windows11推送的详细步骤方法
  14. 使用iBatis和ObjectDataSource轻松实现分页
  15. linux 卸载 java_Linux安装卸载JDK完整步骤
  16. 卷积定理及常见傅里叶变换表
  17. 日语学习|如何快速有效地记忆日语五十音图?
  18. 大数据平台任务调度与监控系统
  19. web前段 ps基础
  20. Javascript MS题蓄力:

热门文章

  1. centos将某一目录权限给用户_centos7如何新建普通权限用户,仅能访问指定目录,使用gcc?...
  2. android动画之布局动画,Android动画--布局动画 LayoutAnimation
  3. linux进程作为服务,将一个监视进程做成linux系统服务
  4. php代码执行漏洞,预警!!!PHP 远程代码执行漏洞
  5. chrome ninja 文件_ninja和gn
  6. java方法参数Bundle,Java ResourceBundle keySet()方法及示例
  7. Sphinx——自动生成Python文档
  8. 2012 php mysql_Apache+Mysql+PHP(win sercer2012)
  9. count(*)效率提高_2020年最新整理财务统计函数,学会让你财务统计效率提升95%以上...
  10. 下列有关计算机图形的叙述中错误的是,计算机图形学(9-16)-中国大学mooc-题库零氪...