6、管理类文件

1、在类中可以再定义类,称之为内嵌类或嵌套类。
   非静态的内嵌类可以分为3种:成员内嵌雷、区域内嵌类和匿名内嵌类。
   
   使用内嵌类有几个好处:
   1)内嵌类可以直接存取其所在类的私有成员;
   2)当某个Slave类完全只服务于一个Master类时,可以将之设定为内嵌类,这样使用Master类的人就不用知道Slave的存在;
   3)像在“静态工厂”模式中,对调用静态方法的对象隐藏返回对象的实现。

2、成员内嵌类基本上是在一个类中直接声明另一个类。例如:
   public class OuterClass
   {
       //内嵌类
  private class InnerClass  
  {
      //...
  }
   }
   当然,成员内嵌类同样可以使用public、protected或private来修饰其存取权限。
   在文件管理方面,成员嵌套类在编译完成后,所产生的文件名称为“外部类名称$内嵌类名称.class”。
   
3、区域嵌套类的使用与成员内嵌类类似,区域嵌套类定义于一个方法中,类的可视范围与生成的对象仅限于该方法中。

4、匿名内嵌类可以不声明类名称,而是用new直接产生一个对象,它可以是继承某个类或实现某个接口。
   声明方式如下:
   new [类或接口()]
   {
       //实现
   }
   
5、在java中定义包时,要使用关键词package,例如:package root.usr;
   package的设定会成为类名称的一部分,例如:root.usr.myClass
   
   为了要使用root.usr.myClass类,
   方法之一是使用完全描述名称,即完整地指出“包加类”名称,例如:
   root.usr.myClass c1 = new root.usr.myClass();
   
   另一种方法是使用import关键词,告知编译器所要使用的类时位于哪一个包,例如:
   import root.usr.myClass;
   ...
   myClass c1 = new myClass();
   
   如果会使用到某个包下的许多类,在使用import指定时,可以在包指定后加上*,编译器会自己找出所需的类,例如:
   import root.usr.*;
   ...
   编译器在处理这个程序时,会先试着在当前工作路径下寻找有无myClass类(.class或.java原始文件),
   如果找不到,编译器会试着组合import上的设定来寻找myClass类,就范例而言,会将root.usr和myClass组合,试着找到root.usr.myClass类。
   
   在import时尽量不要因为贪图方便而使用* !!
   
6、如果声明类时不使用public、protected或private设定权限,则预设为包存取范围,只有同一个包的类可以调用。
   类的权限设定会约束类成员上的权限设定,所以如果类上不声明public,则类成员上设定了public,
   则类成员同样地只能被同一个包的类存取。
   
7、使用import static语法可以import类或接口中的静态成员,例如:
   import static java.lang.System.out;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值