Ste*_*hen 18 java class-design
在我看来,非公共顶级类和静态嵌套类在创建辅助类时基本上执行相同的任务.
public class A
{
public static main (String[] args)
{
AHelper helper = new AHelper();
}
}
class AHelper {}
Run Code Online (Sandbox Code Playgroud)
public class A
{
public static main (String[] args)
{
A.AHelper helper = new A.AHelper();
}
static class AHelper {}
}
Run Code Online (Sandbox Code Playgroud)
除了它们的引用方式之外,我认为创建辅助类的两种方式之间差别不大.它可能主要归结为偏好; 有没有人看到我错过的任何东西?我想有些人会认为每个源文件有一个类更好,但从我的角度来看,在同一个源文件中有一个非公共顶级类似乎更干净,更有条理.
想到的一件事是辅助类的范围.嵌套类可以访问父类的私有成员.如果帮助程序位于其自己的文件中,则您不享受此类访问权限,尽管使用默认程序包可见范围很容易处理.
另一个考虑因素是代码重用 - 您可能希望帮助程序帮助您的包中的几个类.
一个区别是静态嵌套类可以声明为public.您不能对与主类相同的文件中的任何其他类执行此操作,因为公共主级别必须与文件名同名.
因此,您可以在一个文件中声明许多公共类,但只有一个是主级别.其他静态嵌套类应该与主类相关,否则实际上没有意义.
| 归档时间: |
|
| 查看次数: |
5201 次 |
| 最近记录: |