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

如何在Java程序中使用函数和对象实现输入出生年份判断老年人资格功能

Java老年人资格判断程序面向对象改造方案

改造思路

原代码所有逻辑都耦合在main入口方法中,我们通过抽离独立函数、封装对象属性与方法的方式调整,核心原则是把交互逻辑和业务计算逻辑拆分,提升代码可维护性。

改造后完整代码

package senioreligible;
import java.time.Year;
import java.util.Scanner;

// 封装老年人资格判断相关能力的实体类
public class SeniorCitizen {
    // 成员属性:用户出生年份
    private final int birthYear;
    // 老年人年龄阈值,定义为常量方便后续统一修改
    private static final int SENIOR_AGE_THRESHOLD = 60;

    // 构造方法,创建对象时传入出生年份
    public SeniorCitizen(int birthYear) {
        this.birthYear = birthYear;
    }

    // 成员方法:计算当前年龄
    public int getCurrentAge() {
        return Year.now().getValue() - birthYear;
    }

    // 成员方法:判断是否符合老年人资格
    public boolean isEligibleForSenior() {
        return getCurrentAge() >= SENIOR_AGE_THRESHOLD;
    }

    public static void main(String[] args) {
        // 入口仅处理用户交互
        System.out.print("Enter your Year of Birth: ");
        Scanner in = new Scanner(System.in);
        int inputBirthYear = in.nextInt();
        in.close();

        // 创建对应用户的对象
        SeniorCitizen user = new SeniorCitizen(inputBirthYear);
        int age = user.getCurrentAge();
        System.out.println("You are " + age + " years old.");

        // 调用方法获取判断结果输出
        if (user.isEligibleForSenior()) {
            System.out.println("You are eligible to be senior citizen.");
        } else {
            System.out.println("You are not eligible to be senior citizen.");
        }
    }
}

改造说明

  • 封装了独立的SeniorCitizen类,每个实例对应一个用户,绑定用户的出生年份属性,符合面向对象的设计思路
  • 年龄计算、资格判断逻辑都封装为类的成员方法,后续如果需要调整年龄阈值,只需要修改SENIOR_AGE_THRESHOLD常量即可,不需要改动逻辑代码
  • 入口方法仅负责输入输出交互,和核心业务逻辑解耦,后续如果要把输入改为从文件读取、或者把输出改为前端展示,都不需要修改计算部分的代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:27:01