likes
comments
collection
share

《JAVA筑基》第30天:JAVA高级技术-内部类4(静态内部类)

作者站长头像
站长
· 阅读数 91

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());
    }
}

《JAVA筑基》第30天:JAVA高级技术-内部类4(静态内部类)

多学一个知识点

在静态内部类中,可以使用外部类定义的静态变量。但是不能使用非静态变量,这个是静态内部类与非静态内部类的区别。

转载自:https://juejin.cn/post/7114514988764495908
评论
请登录