100天代码提升计划-第27天

局部内部类的定义

如果一个类定义在方法内部,那这个类就是局部内部类

格式

修饰符 class 外部类名称{

   修饰符  返回值类型  外部类方法名称(){

  class 内部类名称{ 

        

}

}

}

定义一个类权限修饰符的使用

1、外部类:public/(default)

2、成员内部类:四种都可以

3、局部内部类:什么都不写

 

代码

package InsideClass;

public class Outout { //外部类
    public void  methodout(){//外部类的方法
        class  In{//局部内部类
            String name="局部内部类";
        public void methodin(){
            System.out.println(name);
        }
        }
        //局部内部类:只有自己所属的方法才能使用
        In in=new In();
        in.methodin();
    }
}
package InsideClass;

public class Mainclass {
    public static void main(String[] args) {
        Outout out =new Outout();
        out.methodout();

    }
}

 

二、局部内部类与final

如果局部内部类想访问局部变量,那么这个局部变量必须是有效final的(局部变量不可变)

 

三、匿名内部类

格式:

接口名称 对象名  =new 接口名称(){        };

package Demo01;

public interface Myinterfacr {
    public abstract void method();
}
package Demo01;

public class Mymain {
    public static void main(String[] args) {
        //Myinterfacrimp obj=new Myinterfacrimp();
        //obj.method(); 正常调用一个接口
        //匿名对象

        Myinterfacr obj=new Myinterfacr() {
            @Override
            public void method() {
                System.out.println("匿名内部类执行!");
            }
        };
        obj.method();

    }
}

 

匿名内部类的注意事项

1.创建对象时,只能使用一次

2.匿名对象在使用的时候只那个调用一次

3.匿名内部类是省略了实现类/子类名称,但是匿名对象省略的是对象名称

posted @ 2022-04-02 23:27  软测成长者  阅读(31)  评论(0)    收藏  举报