《JAVA筑基》第30天:JAVA高级技术-内部类4(静态内部类)
PC端主页可联系我,欢迎问题咨询和技术交流!
零、前言
我的学习策略很简单,题海策略+ 费曼学习法。如果能把这100题都认认真真自己实现一遍,那意味着 JAVA语言 已经筑基成功了。后面的进阶学习,可以继续跟着我,一起走向架构师之路。
题目描述:JAVA高级技术-内部类4(静态内部类)
一、题目
题目:在类中,除以可以定义参数,方法和块,还可以定义类。这种类叫做内部类。
实现:使用静态内部类来实现使用一次遍历求最大值和最小值。
二、解题思路
写一个求最大值最小值的类:MaxMin
在MaxMin类中,定义一个静态内部类:Result
然后在该类中定义两个参数,一个是max,表示最大值。一个是min,表示最小值。
写这两个参数的get方法和通过构造方法初始化值。
再定义一个静态方法,返回的类型是Result。这样返回的值同时包含最大值和最小值。
静态内部类是使用static修饰的内部类。
三、代码详解
最大值最小值的类MaxMin:
public class MaxMin {
public static class Result {
private int max;
private int min;
public Result(int max, int min) {
this.max = max;
this.min = min;
}
public int getMax() {
return max;
}
public int getMin() {
return min;
}
}
public static Result getResult(int[] array) {
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int i : array) {
if (i > max) {
max = i;
}
if (i < min) {
min = i;
}
}
return new Result(max, min);
}
}
测试类
public class Test {
public static void main(String[] args) {
int[] array = new int[5];
Random random = new Random();
for (int i = 0; i < array.length; i++) {
array[i] = random.nextInt(100);
}
System.out.println("源数组:");
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
System.out.println("最大值:" + MaxMin.getResult(array).getMax());
System.out.println("最小值:" + MaxMin.getResult(array).getMin());
}
}
多学一个知识点
在静态内部类中,可以使用外部类定义的静态变量。但是不能使用非静态变量,这个是静态内部类与非静态内部类的区别。
转载自:https://juejin.cn/post/7114514988764495908