Java学习笔记:使类和成员的可访问性最小化

本文介绍了软件设计中访问级别的概念,包括私有的、包级私有的、受保护的及公有的访问级别。强调了减少成员公开的重要性,并给出了如何正确处理公有静态final域的具体案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尽可能地使每个类或者成员不被外界访问。

对于成员(域、方法、嵌套类和嵌套接口)有四种可能的访问级别,下面按照可访问性的递增顺序罗列出来:

  • 私有的(private)
  • 包级私有的(package-private)
  • 受保护的(protected)
  • 公有的(public)

实例域决不能是公有的。

类具有共有的静态finla舒祖域,或者返回这种域的访问方法,这几乎总是错误的。

public static final Thing[] VALUES = { ... };修正这个问题有两种方法。可以使共有数组变成私有的,并增加一个共有的不可变列表:

private static final Thing[] PRIVATE_VALUES = { ... }; public static final List<Thing> VALUES = Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES));另一种方法是,可以使数组变成私有的,并添加一个共有方法,它返回私有数组的一个备份:

private static final Thing[] PRIVATE_VALUES = { ... }; public static final Thing[] values() { return PRIVATE_VALUES.clone();总而言之,你应该始终尽可能地降低可访问性。你在仔细地设计了一个最小的共有API之后,应该防止把任何散乱的类、接口和成员变成API的一部分。除了共有的静态final域的特殊情形之外,共有类都不应该包含公有域。并且要确保公有静态final域所引用的对象都是不可变的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值