内部类的四种情况

内部类的四种情况

 

目录

内部类的四种情况

第一种 两个类在同一个文件中    

第二种 内部类    

第三种 函数中的类    

第四种 函数中的类(接口形式)    

 

第一种 两个类在同一个文件中

代码示例

package com.gaoling.classTest2;

 

public class A {//第一个类

    /*

     * 调用方式

     */

    public static void main(String[] args) {

        B b=new B();

    }

}

 

class B{//第二个类

}

 

说明

A B耦合度最低,只是共用一个文件.java而已。这里的B是一个protected的,只能在本包中使用。

 

编译后的情况

classTest2---

A.class

B.class

 

第二种 内部类

代码

package com.gaoling.classTest1;

 

public class A {

    class B{

        //这个BA的子类,可以有public,private 或其他前缀

    }

    /*

     * 调用方式

     */

    public static void main(String[] args)

    {

        A a=new A();

        B b=a.new B();//注意不是new A.B()

    }

}

说明

    BA的内部类,这个类是一个公有的,可以在其他包中使用,但是需要import com.gaoling.classTest1.A.B;

 

编译情况

classTest1---

A.class

A$B.class

 

第三种 函数中的类

代码

package com.gaoling.classTest3;

 

public class A {

 

    public void function(){

        class B{

 

        };

        //这个B只能在这个function函数中中被实例化和调用

    }

    public static void main(String[] args) {

        

    }

 

}

 

编译情况

classTest3---

A.class

A$1B.class

 

第四种 函数中的类(接口形式)

代码

package com.gaoling.classTest4;

 

public class A {

    

    public void function (){

        Runnable runable=new Runnable(){//实现接口的形式

            public void run() {

            }

            

        };

    }

 

}

说明 这种情况和第三种一样,只是编译后得到的class文件有些区别

 

编译情况

A.class

A$1.class

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值