[2016-8-22]嵌套类

代码

package wlvgfe2016819;


public class Test2016822 {
    private static final String EXTERNAL="外部类的常量";
    private String v1="外部类私有属性";

    public static void main(String[] args) {
        Test2016822 t1=new Test2016822();
        //调用内部类的常量
        System.out.println(Test2016822.TestClass1.HELLO);

        //内部类的实例的创建
        Test2016822.TestClass1 t2=t1.new TestClass1();
        t2.getData();

        //内部类可以访问外部类的成员变量
        t2.getPrivate();

        //实例化静态内部类并调用方法
        Test2016822.TestClass2 t3=new Test2016822.TestClass2();
        t3.getData();

        Thread t4=new Thread(t1.worker1);
        t4.start();
    }

    //内部类,可以使用protect、public、private访问权限控制
    public class TestClass1{
        public static final String HELLO="hello";

        public void getData(){
            System.out.println("内部类对象方法调用");
        }

        public void getPrivate(){
            System.out.println(Test2016822.EXTERNAL);
            //内部类调用外部类的属性
            System.out.println(Test2016822.this.v1);
        }
    }

    //静态内部类
    public static class TestClass2{
        public void getData(){
            System.out.println("静态内部类的方法调用");
        }
    }

    //匿名内部类
    Runnable worker1=new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            System.out.println("开始了一个线程");
        }
    };
}

知识总结:

  1. 内部类是指定义在其他类内部的类,可以使用public、private、protected等访问权限控制,可以看成是外部类的成员,可以无条件的访问外部类的成员,甚至包括private 成员。内部类调用父类的成员可以通过 外部类.this.xxxx这种方式。但是外部类如果想要访问内部类的成员,则需要通过创建实例,并通过创建实例进行访问
  2. 创建内部类的实例可以通过这种方式进行,Test.xxx x1=new Test().new xxx();
  3. 静态内部类的实例的创建可以采用这种方式,Test.xxx x1=new Test.xxx();
  4. 静态内部类独立于外部类,不可以随意访问外部类的成员,静态内部类相当于扩展了外部类的命名空间
  5. 抽象类或者接口的类都可以通过匿名内部类来实现,例如Runable接口就是通过匿名内部类一次实现的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值