5.4 jmu-Java-04面向对象进阶-04-嵌套类-静态嵌套类

定义类,在该类内部创建一个静态嵌套类,该嵌套类包含:
属性: 与,用于存放最小值最大值
方法:toString方法,格式见下面的输出样例。

ArrayUtilsPairResultprivate double minprivate double max

为类创建一个静态方法,对传递进来的数组找到其中的最大值和最小值并返回对象。ArrayUtilsPairResult findMinMax(double[] values)PairResult

main方法说明

  1. 输入n,创建大小为n的double型数组
  2. 依次输入n个double型数值放入数组
  3. 调用findMinMax方法得到结果,并输出。
  4. 最后使用打印标识信息System.out.println(ArrayUtils.PairResult.class)

输入样例

5
0 -1 1 1.1 1.1

输出样例

PairResult [min=-1.0, max=1.1]
\\这里打印标识

思路:

类方法:首先定义一个静态嵌套类PairResult,它有两个属性min和max,用于存储最小值和最大值(赋值为数组的第一个数值以防数组只有一个时报错)。然后定义了一个toString方法,用于将对象转换为字符串。
然后外部类ArrayUtils定义一个静态方法findMinMax,它接受一个double数组作为参数,然后遍历这个数组,找到其中的最大值和最小值,然后返回一个PairResult对象。 

Main类:首先创建一个Scanner对象用于接收输入。然后输入数组的大小,并创建一个相应大小的double数组。然后输入n个double值,并将这些值存入数组。然后调用findMinMax方法找到数组中的最大值和最小值,并打印结果。最后,打印PairResult类的类信息。

代码如下:

import java.util.Scanner;
// 导入ArrayUtils类
class ArrayUtils {
    // 定义PairResult类
    public static class PairResult {
        private double min;
        private double max;

        // 构造函数,传入最小值和最大值
        public PairResult(double min, double max) {
            this.min = min;
            this.max = max;
        }

        // 重写toString方法,返回PairResult的字符串表示
        @Override
        public String toString() {
            return "PairResult [min=" + min + ", max=" + max + "]";
        }
    }

    // 定义findMinMax方法,传入double数组,返回PairResult对象
    public static PairResult findMinMax(double[] values) {
        // 定义最小值和最大值
        double min = values[0];
        double max = values[0];

        // 遍历数组,找到最小值和最大值
        for (double value : values) {
            if (value <= min) {
                min = value;
            }
            if (value >= max) {
                max = value;
            }
        }
        // 返回PairResult对象
        return new PairResult(min, max);
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建Scanner对象
        Scanner scanner = new Scanner(System.in);

        // 输入数组大小
        //System.out.println("Enter the size of the array:");
        int n = scanner.nextInt();

        // 创建double数组
        double[] values = new double[n];

        // 输入数组元素
        //System.out.println("Enter " + n + " double values:");
        for (int i = 0; i < n; i++) {
            values[i] = scanner.nextDouble();
        }

        // 调用ArrayUtils的findMinMax方法,传入double数组,返回PairResult对象
        ArrayUtils.PairResult result = ArrayUtils.findMinMax(values);
        System.out.println(result);
        System.out.println(ArrayUtils.PairResult.class);
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值