tij学习笔记 内部类

可以将一个类定义在另一个类的内部,这就是内部类.内部类是一种非常有用的特性,因为允许你把一些逻辑相关的类组织在一些,并控制内部类的可见性.

public class Parcel1 {
    class Contents{
        private int i = 11;
        public int value(){ return i;}
    }
   class Destination{
       private String label;
       Destination(String whereTo){
          label = whereTo;
       }
       String readlabel(){ return label; }
    }
   public Destination to(String s){
       return new Destination(s);
   }
   public Contents cont(){
       return new Contents();
   }
   public void ship(String dest){
       Contents c = cont();
       Destination d =  to(dest);
       System.out.println(d.readlabel());
   }
   public static void main(String args[]){
      // Contents c = new Contents();不能编译
       Parcel1 p = new Parcel1();
       Parcel1.Destination d =p.to("ddddd");
       System.out.println(d.readlabel());
   }

不能在静态方法内直接象其他类一样使用,(必须用OutClassName.InnerClassName格式 ,,,jdk6 好像不用?高人指明)

TIJ:不能在外部类的非静态方法之外的任意位置创建某个内部类的对象.具体指明对象类型

可以用方法返回的方式创建内部类的对象.

还可以用Destination d2 = p.new Destination("aa");创建内部类对象

要创建内部类必须创建外部类对象

在非static内部类中,通过特殊的this引用可以链接到外部类.

内部类对象有一个创建它的外部类对象的引用(通过特殊的this).因此内部类对象可以访问外部类的方法和字段,就像自己拥有一样.

当内部类是static时 ,就不会有对外部类的引用.这通常成为嵌套类,嵌套类没有这个特殊的this,嵌套类类似一个static方法

2..在方法和作用域内的内部类

方法内的类,在方法外不能访问.

作用域外 也不能访问定义在作用域内部的类.

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值