java-有没有人能看看这个类怎么设计。

问题描述

有没有人能看看这个类怎么设计。

#【JAVA初学者】 关于一道JAVA的题目

题目要求放上图中。希望有清晰的思路,要是有代码简单实现更好了

解决方案

主要实现类:

     package com.test;

    /**
     * 计算使用率
     */
    public class Domain {

    private static double maxArea;//最外边矩形的面积
    private static double userArea;//已使用的面积
    private static double usageRate;//使用率

    public static void main(String[] args) {

        double[] db1 = {400.0, 50.0};
        double[] db2 = {10.0};
        double[] db3 = {10.0, 20.0};
        double[] db4 = {5.0, 15.0};
        double[] db5 = {23.5};

        maxArea = getArea(db1);

        userArea = getArea(db2)
                + getArea(db3)
                + getArea(db4)
                + getArea(db5);

        usageRate = userArea / maxArea;

        System.out.println(usageRate);

    }

    public static double getArea(double[] db){
        if(null == db || db.length == 0){
            return 0;
        }

        int len = db.length;

        Shape shape = null;

        if(len == 1){
            shape = new Round(db[0]);
        }

        if(len == 2){
            shape = new Rectangle(db[0], db[1]);
        }

        return shape.getArea();
    }
    }

形状的接口:

     package com.test;

    /**
     * 形状
     */
    public interface Shape {

    //面积
    double area = 0;
    //获取形状的面积
    public double getArea();

    }

矩形类型,实现形状接口:

     package com.test;

    /**
     * 矩形,包括长方形和正方形
     */
    public class Rectangle implements Shape{

    private double lenth;//长
    private double width;//宽

    Rectangle(){

    }

    Rectangle(double lenth, double width){
        this.lenth = lenth;
        this.width = width;
    }

    public double getArea() {
        //计算长方形面积
        return this.lenth * this.width;
    }

    public double getLenth() {
        return lenth;
    }

    public void setLenth(double lenth) {
        this.lenth = lenth;
    }

    public double getWidth() {
        return width;
    }

    public void setWidth(double width) {
        this.width = width;
    }

    }

圆形类,实现形状接口:

     package com.test;

    /**
     * 圆形
     */
    public class Round implements Shape {

    private static final double PI = 3.14;

    private double r;//圆形的半径

    Round(){

    }

    Round(double r){
        this.r = r;
    }

    public double getArea() {
        return PI * r * r;
    }

    public double getR() {
        return r;
    }

    public void setR(double r) {
        this.r = r;
    }

    }

如果后续还有再添加什么形状,如三角形梯形,多边形啥的,直接继续实现形状接口就好。

时间: 2025-01-19 01:55:46

java-有没有人能看看这个类怎么设计。的相关文章

Java网络编程基础(三) Datagram类使用方法

Datagram(数据包)是一种尽力而为的传送数据的方式,它只是把数据的目的地记录在数据包中,然后就直接放在网络上,系统不保证数据是否能安全送到,或者什么时候可以送到,也就是说它并不保证传送质量. 1 UDP套接字 数据报(Datagram)是网络层数据单元在介质上传输信息的一种逻辑分组格式,它是一种在网络中传播的.独立的.自身包含地址信息的消息,它能否到达目的地.到达的时间.到达时内容是否会变化不能准确地知道.它的通信双方是不需要建立连接的,对于一些不需要很高质量的应用程序来说,数据报通信是一

使用UML类图设计Java应用程序(一)

UML已成为面向对象设计的标准图形化工具,在UML定义的各种图中,本文只涉及类图.Java应用程序由许多类所构成,类图的设计与实现,是Java实现面向对象应用程序的核心.本文通过一个具体的应用程序的设计与实现过程,详细说明了利用UML类图设计Java应用程序,使得开发过程标准化.可视化,代码编程简单化. 在类图中,类被描述为带有三层的盒子. 顶层为类名,一般用加粗字体表示.如果类是抽象的,其名称用斜体表示:如果类是接口,则在类名上方标注<<interface>>. 中间层包含类的属

java 利用java反射机制动态加载类的简单实现_java

如下所示: ////////////////// Load.java package org.bromon.reflect; import java.util.ArrayList; import java.util.List; public class Load implements Operator { @Override public List<?> act(List<?> params) { // TODO Auto-generated method stub List<

数据库-java中的流属于工具类吗,还是属于一种数据类型?

问题描述 java中的流属于工具类吗,还是属于一种数据类型? 数据库存储的blob类型数据不应该是一串二进制数吗,为什么都说它是二进制流. 解决方案 工具类都在这个java.util中定义, 你看包就知道了 流是专门处理Io的. 有一套对应的类来支持它 数据库存储的blob类型数据不应该是一串二进制数吗,为什么都说它是二进制流 存储的数据是二进制数,但是这个二进制数的格式是某个对象的 这就是流对象. 你要通过流对象读出二进制数啊 这和你用流读取一个二进制文件是一样的 解决方案二: 流是一种抽象类

如何理解java中 对象.this方法 还有 类.this.方法的 意义

问题描述 如何理解java中 对象.this方法 还有 类.this.方法的 意义 如何理解java中 对象.this方法 还有 类.this.方法的 意义 有没有这两种语法规则呢 解决方案 this.方法是在某个对象的实例方法内,this代表当前实例.一般情况下不用写,除非它和参数重名才需要: class A { int a; int b; public void seta(int a) { this.a = a; //因为参数a和成员变量a都叫a,所以需要区分. b = a; //相当于th

java当中的泛型类问题,类泛型参数是类的问题

问题描述 java当中的泛型类问题,类泛型参数是类的问题 类1<类2> 这样子写的话 类1和类2的选取范围是什么类<类>类的泛型是类的本身,这种写有错吗 解决方案 一般来讲,我们用到"类1<类2>"这样的形式的Java语句,通常是希望将范围比较大的类1里面所包含的内容规范化成类2:举个简单的例子,我们通常会在创建集合的时候限定集合里面的内容的类型,如:List.这意味着这个List集合里的内容都是字符串类型,而不会是Long或其他,这样就会在我们操作

java spring注入bean生成一个类实例,请问这个类实例是单体类吗?全局唯一吗。

问题描述 java spring注入bean生成一个类实例,请问这个类实例是单体类吗?全局唯一吗. 小弟刚从C++转JAVA不久,遇到这样一个问题,求高人帮忙解答. 我现在大体理解了注入的实现方式,例如在一个标注有@configuration 的类里面,如果一个方法 上面有@bean,那么这个方法的返回的类对象会被实例化. 我的疑问是这样的,这个实例化的对象是全局唯一的吗,或者说 是一个单体类吗? 因为我要在我的程序里不同地方使用调用这个bean的方法,我担心如果是单体类的话, 是否存在数据同步

flex-【HELP】JAVA demo运行找不到类

问题描述 [HELP]JAVA demo运行找不到类 20C 出现如下错误,对应的调用代码如下User user=(User)amf3input.readObject();//AMF3读取flex发送过来的as对象 ,请问下是不是运行时候还差哪些参数设置? 我进一步定位问题发现应该是FLex这边定义的RemoteClass找不到.flex客户端我是放在其他目录,java服务器是通过cmd开启的,是否是路径的问题? Flex端 package vo { [Binable] [RemoteClass

反射 注解-Java利用反射执行框架注入类的非静态方法

问题描述 Java利用反射执行框架注入类的非静态方法 之前对代码做优化,利用了反射去执行指定类的指定方法: public static JsonResultVO callMethod(Class<?> className String methodName Class<?>[] paramClass Object[] param) { JsonResultVO resultVO = new JsonResultVO(); try { Method m = className.get