Java中创建独立类输出随机数组的最小值与最大值
解决方案
1. 创建独立的MinMaxStats类
这个类负责从Data对象中提取数组,计算并存储最小值和最大值:
package Pck1; public class MinMaxStats { public Data data; public int min; public int max; // 无参构造 public MinMaxStats() {} // 接收Data对象的构造 public MinMaxStats(Data data) { this.data = data; } // 计算最小值和最大值的方法 public void calculateMinMax() { int[] ary = data.ary; // 初始化min和max为数组第一个元素(假设数组非空) min = ary[0]; max = ary[0]; for (int num : ary) { if (num < min) { min = num; } if (num > max) { max = num; } } } }
2. 修改MainClass调用新类
在主方法中实例化MinMaxStats,调用计算方法后输出结果:
package Pck1; public class MainClass { public static void main(String[] args) { //create data object Data data = new Data(15, 101); //15 is the size and 101 is the range -- 101 including 0. so 100 is the max range data.displayData(); Stats st = new Stats(data); st.calculateSum(); System.out.println("sum = " + st.sum); // 新增:计算并输出最值 MinMaxStats minMaxStats = new MinMaxStats(data); minMaxStats.calculateMinMax(); System.out.println("最小值 = " + minMaxStats.min); System.out.println("最大值 = " + minMaxStats.max); } }
逻辑说明
- 计算最值时,先将
min和max初始化为数组的第一个元素(你的Data类构造都会初始化数组,无需担心空数组问题)。 - 遍历数组中的每个元素,依次和当前
min、max比较:如果元素更小,更新min;如果更大,更新max。 - 整个计算逻辑完全封装在
MinMaxStats类中,满足“独立类完成”的要求。
可选优化建议
如果想遵循更好的封装原则,可以把成员变量设为private,并提供getter方法避免直接访问:
package Pck1; public class MinMaxStats { private Data data; private int min; private int max; public MinMaxStats(Data data) { this.data = data; } public void calculateMinMax() { int[] ary = data.ary; min = ary[0]; max = ary[0]; for (int num : ary) { if (num < min) min = num; if (num > max) max = num; } } public int getMin() { return min; } public int getMax() { return max; } }
主方法调用改为:
System.out.println("最小值 = " + minMaxStats.getMin()); System.out.println("最大值 = " + minMaxStats.getMax());
内容的提问来源于stack exchange,提问作者darth.vater
相关产品推荐
相关产品推荐

