shauiqidejizai 2021-01-24 12:49 采纳率: 100%
浏览 54
已结题

Java程序设计 实验04

  1. 编写一个比较图形面积的类JAreaGeneric.java,要求如下:
    1. 为JShape接口或抽象类(任选一)增加一个int getId()方法,用于返回图形id;
    2. 为各类图形增加一个成员变量int id;
    3. 在JAreaGeneric类声明时增加一个泛型参数T
    4. 在JAreaGeneric类中定义方法:public T CompareArea(T shape1, T shape2),实现对shape1和shape2的面积比较,并返回面积较大的图形。
    5. 在JAreaGeneric类的main方法中分别构造一个矩形、圆形和三角形,使用CompareArea方法比较它们的面积大小,并输出较大的图形id。
  2. 编写程序J_StringArray.java,实现如下功能:
    1. 定义一个包含10个元素的一维数组,数组的元素类型是String;
    2. 使用equals方法,查找出数组中是否存在重复的字符串。
    3. 查找String类的帮助文档,将所有数组元素进行排序并打印显示。

 

  • 写回答

1条回答 默认 最新

  • 眸笑丶 2021-01-27 11:22
    关注
    package CSDNTest;
    // T泛型默认为Shape类
    public class JAreaGeneric<T extends Shape> implements JShape<T> {
        // 比较方法
        public T CompareArea(T shape1, T shape2) {
            double area1 = shape1.area();
            double area2 = shape2.area();
            return area1 > area2 ? shape1 : shape2;
        }
    
    
        public static void main(String[] args) {
            Rect rect = new Rect(1, 3, 4);
            Triangle triangle = new Triangle(2, 8, 4);
            JAreaGeneric<Shape> shapeJAreaGeneric = new JAreaGeneric<>();
            Shape shape = shapeJAreaGeneric.CompareArea(rect, triangle); // 比较
            System.out.println("面积大的为:" + shapeJAreaGeneric.getId(shape));
        }
    
        @Override
        public int getId(T shape) {
            return shape.getId();
        }
    }
    
    interface JShape<T> {
        int getId(T shape);
    }
    
    /*
     * 圆形子类
     * */
    class Cirle extends Shape {
        public Cirle(int id, double r) {
            super.setId(id);
            super.setR(r);
        }
    
        @Override
        public double area() {
            return getR() * getR() * 3.14;
        }
    }
    
    /*
     * 三角形子类
     * */
    class Triangle extends Shape {
        public Triangle(int id, double w, double h) {
            super.setId(id);
            super.setW(w);
            super.setH(h);
        }
    
        @Override
        public double area() {
            return super.getW() * super.getH() / 2;
        }
    }
    
    /*
     *矩形子类
     * */
    class Rect extends Shape {
    
    
        public Rect() {
            super();
        }
    
        public Rect(int id, double w, double h) {
            super();
            super.setId(id);
            super.setW(w);
            super.setH(h);
        }
    
        @Override
        public double area() {  //重写计算面积方法
            return super.getW() * super.getH();
        }
    }
    
    class Shape { // 图形的父类
        int id;
        private double w; // 宽
        private double h; //高
        private double r; //半径
    
        public double getW() {
            return w;
        }
    
        public void setW(double w) {
            this.w = w;
        }
    
        public double getH() {
            return h;
        }
    
        public void setH(double h) {
            this.h = h;
        }
    
        public double getR() {
            return r;
        }
    
        public void setR(double r) {
            this.r = r;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public double area() { //计算面积的方法
            return 0;
        }
    }
    
    

    1.

    package CSDNTest;
    
    import java.lang.reflect.Array;
    import java.util.Arrays;
    
    public class J_StringArray {
        //定义一个包含10个元素的一维数组,数组的元素类型是String;
        private static String[] strings = {"A", "J", "C", "C", "D", "E", "F", "H", "G", "B"};
    
        public static void main(String[] args) {
            // 使用equals方法,查找出数组中是否存在重复的字符串。
            for (int i = 0; i < strings.length; i++) {
                for (int j = i + 1; j < strings.length - i; j++) {
                    if (strings[i].equals(strings[j])) {
                        System.out.println("重复元素:" + strings[i] + "=" + strings[j]);
                    }
                }
            }
            Arrays.sort(strings);
            for (String str : strings) {
                System.out.print(str + "\t");
            }
    
        }
    
    }
    

    2.

    不知道符不符合题目要求

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料