member,local ,anonymous三种内部类

第二天:(Java中的三种内部类基础)

内部类:
内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为 Dog 的外部类和其内部定义的名为 Cat 的内部类。编译完成后出现 Dog .class 和 Dog $Cat .class 两类。

一:成员内部类( member inner class):

1.不对外开放,高内聚,保密性强
2.与外部类方法,属性成员同级别
3.不能定义静态变量,可以访问外部类所有成员

成员内部类例子

public class D{
    public void hehe(){
        system.printIn.out("nanannanan");
    }
}
public class W{

    class Gg{
        public void nani(){
            D d = new D();
            d.hehe();
            system.printIn.out("On shit");
        }

    }

    public void fuck(){
        Gg gg = new Gg();

    }

    public static void main(args []){
        W w = new W();
        w.fuck();
    }
}

二:局部内部类(local inner class):

1.又叫方法内部类,即在方法里面定义的内部类,与局部变量类似,在局部内部类前不加修饰符public或private,其范围为定义它的代码块。
2.局部内部类中不可定义静态变量,可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的。
3.要想使用局部内部类时需要生成对象,对象调用方法,在方法中才能调用其局部内部类。

局部内部类例子

public class TongXingZheng{

    public void noPloblem(){
        system.printIn.out("安全无证酒后超速驾驶20年");
    }
}
public class Q{

    public void driver(){

        system.printIn.out("老司机要开车了");

        class B extends TongXingZheng{

            }

        new B().noPloblem();
        system.printIn.out("没事儿,啦啦啦");

       }

    public static void main(args []){
        Q q = new Q();
        q.driver(); 
    }

} 

三:匿名内部类(anonymous inner class)

1.类名没有意义,也就是不需要使用到。
2.匿名内部类大括号后面需要加上 分号
3.一个类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的事现或是覆盖。
4.匿名内部类 new后面 的大多数是抽象类或者接口

匿名内部类例子

public interface QinShou {

    public vlid workInNight() {

    }
}
public abstract class Doctor implements QinShou {

    public void workInDay() {
        system.printIn.out("白天是教授,教书");
    }
}
public class Doctor1 extends Doctor{

    public void workInNight(){
        system.printIn.out("高度打码,太模糊。。。。");
    }
}
public class Test {

    public static void main(args []){

        Doctot1 doctor1 = new Doctor1();
        doctot1.workInDay();
        doctor1.workInNight();

        Doctor doctor3 = new Doctor(){
            public void workInNight(){
                system.printIn.out("这个禽兽是个匿名的叫兽");
            } 
        };
        doctor3.workInDay();
        doctor3.workInNight();
    }

} 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值