商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何在Java中正确返回多个用户输入值并供类内其他方法使用

如何在Java中正确返回多个用户输入值并供类内其他方法使用

  发布于2026-07-12 阅读(0)

扫一扫,手机访问

本文讲解如何在Ja va中通过合理设计方法与类结构,将Scanner获取的多个用户输入值(如商店编号和操作编号)安全、高效地存储到类成员变量中,以便后续代码调用。

很多刚接触Ja va的朋友都会遇到一个尴尬的场景:在方法里用Scanner读了好几个数,想一股脑儿返回到调用方,结果发现return Store, Week;这行代码直接让编译器报错。其实,这不怪你,只怪Ja va的语法设计——它只允许返回一个值(或者一个对象)。那多值怎么处理?答案很简单:别想着“返回”,而是让输入结果直接成为类的一部分。

核心思路就是将输入值赋值给类的实例变量,把这些数据变成对象的“状态”,这样整个类生命周期内都能随时取用。具体怎么做?推荐一个简洁且健壮的模式:

  • play()方法的返回值类型改成void,不再试图返回数据;
  • 在构造器里调用play(),保证对象一创建用户交互就完成;
  • 用私有实例变量storeweek保存输入值,默认类内可见。

来看一个优化后的完整示例:

import ja va.util.Scanner;

public class UI {
    private final Scanner input = new Scanner(System.in); // 推荐声明为final,避免意外重赋值
    private int store;   // 使用小驼峰命名,符合Ja va规范
    private int week;

    public UI() {
        play(); // 构造时自动采集输入
    }

    public void play() {
        System.out.print("Please enter the store #(1-6): ");
        this.store = input.nextInt();
        System.out.print("Please enter the operation (1-7): ");
        this.week = input.nextInt();
    }

    // 提供公共getter方法,支持外部安全访问
    public int getStore() { return store; }
    public int getWeek() { return week; }

    // 示例:可在其他业务方法中直接使用
    public void executeOperation() {
        System.out.printf("Executing operation %d for store %d%n", week, store);
    }
}

这段代码里要注意几个关键点:

  • 千万别在play()里写return Store, Week;——Ja va不支持多值返回(不像Python的元组);
  • 不要把Scanner声明为静态字段,否则多个实例会共享输入流,导致不可预知的行为;
  • 实际项目中,记得在合适的地方调用input.close(),比如提供一个close()方法,配合try-with-resources使用,防止资源泄漏;
  • 如果需要更灵活的输入校验(比如范围检查、异常处理),可以在play()里加while循环和try-catch,确保输入合法后再赋值。

通过这个设计,当你写UI ui = new UI();创建对象后,直接用ui.getStore()ui.getWeek()就能拿到用户输入的值。后续无论扩展多少业务逻辑,数据都稳稳地待在对象的怀里,随时待命。

本文转载于:https://www.php.cn/faq/2811215.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注