Java构造器与工具类的实战技巧

构造器(Constructor)的应用场景

构造器用于初始化对象的状态。默认构造器由Java自动生成,但自定义构造器可满足特定需求。

  • 无参构造器:创建对象时不强制传入参数,适用于配置默认值。
  • 有参构造器:强制初始化关键属性,如用户类必须设置usernamepassword
  • 链式构造器:通过this()调用同类其他构造器,避免代码重复。

示例代码:

public class User {
    private String username;
    private String password;

    // 无参构造器
    public User() {
        this.username = "default";
        this.password = "123456";
    }

    // 有参构造器
    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }
}

Getter/Setter方法的应用场景

用于封装类的属性,提供可控的访问和修改方式。

  • 数据校验:在setter中加入逻辑,如密码长度检查。
  • 延迟加载:通过getter实现懒初始化,优化性能。
  • 兼容性:后续修改内部存储(如List改为Set)时不影响外部调用。

示例代码:

public class User {
    private String password;

    public String getPassword() {
        return password; // 可返回掩码后的值
    }

    public void setPassword(String password) {
        if (password.length() >= 6) {
            this.password = password;
        } else {
            throw new IllegalArgumentException("密码过短");
        }
    }
}

工具类(Utility Class)的应用场景

封装通用功能,通常设计为final类+私有构造器+静态方法。

  • 字符串处理:如自定义的StringUtils提供trimAll()方法。
  • 数学计算:如MathUtils包含复杂的统计公式。
  • 日期转换:统一处理LocalDateTime与字符串的转换。

示例代码:

public final class DateUtils {
    private DateUtils() {} // 防止实例化

    public static String format(LocalDateTime date) {
        return date.format(DateTimeFormatter.ISO_DATE);
    }

    public static LocalDateTime parse(String dateStr) {
        return LocalDateTime.parse(dateStr, DateTimeFormatter.ISO_DATE);
    }
}

综合应用建议

  • 构造器优先用于强约束的初始化,避免对象状态不完整。
  • Getter/Setter在需要控制访问逻辑时使用,否则可直接用public final字段(如常量)。
  • 工具类应保持无状态,避免继承,方法命名需明确功能(如parseXxx())。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值