JAVA 内部类介绍

1.成员内部类
外部类调用内部类成员的方式:
格式:
外部类名.内部类名 变量名 = new 外部类名().new 内部类名();
变量名.内部类成员

*打印同名成员变量的方法:*
    //分别打印 1,2,3
    public class Outer{

    int I = 1;

    class Inner{

        int I = 2;

        public void inner(){

            int I = 3;

            System.out.println(Outer.this.i);
            System.out.println(this.i);
            System.out.println(i);
        }

    }

}

2.局部内部类

   public class Outer {

    public void out(){
         class Inner {
             public void inner(){
                 System.out.println("局部内部类");
             }
         } 
         Inner in = new Inner();
         in.inner();
    }

}

没什么特别的调用方式,直接调用外部类的方法

3.匿名内部类

直接创建出子类和子类的对象,所以必须是继承一个类或者实现一个接口

public interface Smoking {
    public abstract void smoking();
}
/*
 *  没有使用内部类的写法:
 *  定义实现类,实现接口,重写接口抽象方法,创建实现类对象
 *  class XXX implements Smoking{
 *      public void smoking(){
 *      
 *      }
 *  }
 *  XXX x = new XXX();
 *  x.smoking(); 
 *  Smoking s = new XXX();
 *  s.smoking();
 *  
 */
public class Test {
    public static void main(String[] args) {
        //使用匿名内部类,定义实现类,实现接口,重写接口抽象方法,创建实现类对象简化,以上合为一步
        /*
         *  格式:
         *        new 接口或者父类(){
         *          重写抽象方法
         *         };
         */
        new Smoking(){
            public void smoking(){
                System.out.println(“匿名内部类”);
            }
        }.smoking();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值