内部类和匿名类(不知道这两个常用不常用呢)

内部类:

在OutClass(外部类)要使用自己的内部类的话,和一般的使用没有什么区别,但是其它类中要使用这个内部类的话,则需要使用下面这样的代码形式:
OutClass outt=new OutClass();
OutClass.InnerClass inner=outt.new InnerClass();
在内部类中可以直接访问外部类的域和方法,即使是private修饰的域和方法,内部类拥有对在外层类中定义的所有属性和方法的访问权.这也是使用内部类的一个很方便的地方


外部类不能使用的protected. private,和static等都可以在内部类的定义声明上使用.
如果为private,则只有本类可以使用它,
如果内部类为protected,,则只有外层类,与外层类处于同一包中的类以及外层类的子类可以访问它.

尤其需要注意的是static修饰的内部类,这个内部类的创建和别的不一样,而且在内部类中只能访问外部类的static成员
它创建是这样子的:
OutClass ooo=new OutClass();
OutClass.InnerClass innnn=new OutClass.InnerClass();//注意这个地方和别的不一样.


在方法中定义的内部类,其作用域公限于该方法的范围内,在其它方法里定义也没有名字的冲突问题.
定义在方法中的内部类不能访问方法中的非final局部变量

 

一般不要用内部类.而是将类的定义更我地进行细分.

 

 

匿名类:

没有名字,它的定义和一个实例的创建是同时进行的,没有class关键字,不能有修饰符,不能定义构造方法.(真是够光溜的!!!呵呵)

例如:

new B()//B()是个接口

{public void print(){System.out.println("这是个匿名类例子");}};//分号表示表达式的结束.一定要有这个分号...

这个句子将返回值同表示返回值类型的类定义结合在一起,它相当于:

class AAA implements B{

       public void print(){System.out.println("这是个匿名类例子");}

}

new AAA();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值