首页 > 其他分享 >9.20 图形结构

9.20 图形结构

时间:2023-06-11 18:55:07浏览次数:40  
标签:9.20 return area double radius 图形 AbstractShape public 结构

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

abstract class AbstractShape {
	public abstract double area() ;// 求面积
	public abstract double perimeter() ;// 求周长
}

class Circular extends AbstractShape {
	private double radius ;
	public Circular(double radius) {
		this.radius = radius ;
	}
	public double area() {
		return 3.1415926 * this.radius * this.radius ;
	}
	public double perimeter() {
		return 2 * 3.1415926 * this.radius ;
	}
}

class Rectangle extends AbstractShape {
	private double length ;
	private double width ;
	public Rectangle(double length,double width) {
		this.length = length ;
		this.width = width ;
	}
	public double area() {
		return this.length * this.width ;
	}
	public double perimeter() {
		return 2 * (this.length + this.width) ;
	}
}

class Factory {
	public static AbstractShape getInstance(String className,double ... args) {
		if ("Circular".equalsIgnoreCase(className)) {
			return new Circular(args[0]) ;
		} else if ("Rectangle".equalsIgnoreCase(className)) {
			return new Rectangle(args[0],args[1]) ;
		} else {
			return null ;
		}
	}
}

public class HelloWorld {
	public static void main(String args[]) {
		AbstractShape asa = Factory.getInstance("Circular",1.1) ;
		AbstractShape asb = Factory.getInstance("Rectangle",1.5,10.2) ;
		System.out.println("圆形面积:" + asa.area() + "、圆形周长:" + asa.perimeter()) ;
		System.out.println("矩形面积:" + asb.area() + "、矩形周长:" + asb.perimeter()) ;
	}
}
  • 注意:AbstractShape 在每个出现位置的含义!!

标签:9.20,return,area,double,radius,图形,AbstractShape,public,结构
From: https://www.cnblogs.com/pansidong/p/17473395.html

相关文章

  • ELK logstash 结构
    在命令行中指定-e参数,从标准输入到标准输出,并格式化结果。#/opt/logstash/bin/logstash-e'input{stdin{}}output{stdout{codec=>rubydebug}}'www.ttlsa.comSettings:Defaultfilterworkers:2Logstashstartupcompleted{"message"=>"www.ttlsa.co......
  • 【数据结构】查找
    基本概念查找表 由同一类型的数据元素(记录)构成的集合。所谓集合指记录间不存在前驱后继关系,因此查找表是一种应用灵便的结构。静态查找表 只对查找表做查找操作,即只查询某个记录是否在表中,或只检索某个记录的各种属性。或者说:查找表加上不会使该表的内容发生变化的查找操作,称作......
  • Redis学习笔记4-脚本、持久化和集群 Redis学习笔记1-基础命令及数据结构: http://blog.
        Redis学习笔记4-脚本、持久化和集群Redis学习笔记1-基础命令及数据结构:http://blog.guoyb.com/2016/07/21/learn-redis-basic-commands/Redis学习笔记2-事务与过期时间:http://blog.guoyb.com/2016/08/23/learn-redis-adv/Redis学习笔记3-排序与消息通知:http://blog......
  • STL之Stack与queue的模拟实现与duque的底层结构(3千字长文详解)
    STL之Stack与queue的模拟实现与duque的底层结构设计模式的概念设计模式像是古代的兵法,是以前的人总结出来的一些在特定的情况下,某种特定的好用的方法总结STL中迭代器也是一种设计模式——==迭代器模式==STL中stack和queue的实现就是使用了一种设计模式——==适配器模式!==适......
  • Linux平台下的ELF文件结构探索
    本文以目标文件的结构为引子,通过探索在Linux环境下,一个具体的目标文件的结构来窥探ELF文件的结构。了解ELF文件的结构,对于加深对链接的理解、认识操作系统背后机理都有很大好处。编译和链接在正式讨论目标文件的结构之前,需要先对一个C/C++程序从源代码到可执行程序的构建过程有所了......
  • 关于模板字面量,我有点好奇它的内部结构
    前言最近翻看源码的时候,发现一些有趣的JS的知识点,基于日常的开发经验,我做了一些联想和对比。整个过程充满了乐趣。于是我想,是不是可以延续这种创意带来的学习的乐趣。带的富含创造力夜晚的buff,确实让我拥有了不错的灵感。这些灵感像繁星一样闪耀着我的夜里,留下一行文字:关于模版......
  • Cassandra 的数据存储结构——本质是SortedMap<RowKey, SortedMap<ColumnKey, ColumnV
    Cassandra的数据存储结构Cassandra的数据模型是基于列族(ColumnFamily)的四维或五维模型。它借鉴了Amazon的Dynamo和Google'sBigTable的数据结构和功能特点,采用Memtable和SSTable的方式进行存储。在Cassandra写入数据之前,需要先记录日志(CommitLog),然后数据开始写......
  • NoSQL生态系统——类似Bigtable列存储,或者Dynamo的key存储(kv存储如BDB,结构化存储如red
    摘自:http://www.ituring.com.cn/article/4002#NoSQL系统的数据操作接口应该是非SQL类型的。但在NoSQL社区,NoSQL被赋予了更具有包容性的含义,其意为NotOnlySQL,即NoSQL提供了一种与传统关系型数据库不太一样的存储模式,这为开发者提供了在关系型数据库之外的另一种选择。在关联型的数......
  • 固定导航结构
          ......
  • 应用列表的简单结构
       样式   右侧结构 样式 ......