You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何遵循OOP标准从其他类调用数组与方法

符合OOP标准的Arrays类重构与Main类调用实现

要遵循OOP标准,核心是将原Arrays类中的静态成员和方法改为实例级别的,通过创建类的对象来调用方法,而非直接依赖静态成员。以下是具体的重构和修改方案:

重构后的Arrays类

将静态Scanner改为实例变量,所有静态方法改为非静态方法,实现封装和实例化调用:

import java.util.Scanner;

public class Arrays {
    // 改为实例级Scanner,避免全局静态共享
    private Scanner scan = new Scanner(System.in);

    public int[] getIntegers(int number) {
        System.out.println("Please enter " + number + " numbers");
        int[] entered = new int[number];
        for(int i = 0; i < entered.length; i++) {
            entered[i] = scan.nextInt();
        }
        return entered;
    }

    public void printArray(int[] entered) {
        for(int i = 0; i < entered.length; i++) {
            System.out.println("Element " + i + ", typed value was " + entered[i]);
        }
    }

    public int[] sortIntegers(int[] entered) {
        int[] sortedArray = new int[entered.length];
        for(int i = 0; i < entered.length; i++) {
            sortedArray[i] = entered[i];
        }

        boolean flag = true;
        int temp;
        while(flag) {
            flag = false;
            for(int i = 0; i < sortedArray.length - 1; i++) {
                if(sortedArray[i] < sortedArray[i + 1]) {
                    temp = sortedArray[i];
                    sortedArray[i] = sortedArray[i + 1];
                    sortedArray[i + 1] = temp;
                    flag = true;
                }
            }
        }
        return sortedArray;
    }
}

修改后的Main类

通过创建Arrays类的实例,调用实例方法,无需静态导入:

public class Main {
    public static void main (String[] args) {
        // 创建Arrays类的实例
        Arrays arrayHandler = new Arrays();
        
        int[] myIntegers = arrayHandler.getIntegers(5);
        int[] sorted = arrayHandler.sortIntegers(myIntegers);
        arrayHandler.printArray(myIntegers);
        arrayHandler.printArray(sorted);
    }
}

关键改动说明

  • 移除静态成员:将原静态的scan变量改为实例私有变量,符合OOP封装原则,避免静态变量带来的全局状态共享问题。
  • 方法实例化:所有操作方法改为非静态,使方法属于Arrays对象的行为,而非类本身,符合OOP中“对象负责自身行为”的设计理念。
  • 实例调用:在Main类中创建Arrays对象,通过对象调用方法,完全遵循OOP的实例化调用规范,无需依赖静态导入。

内容的提问来源于stack exchange,提问作者LemonRemon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 10:30:52