其他分享
首页 > 其他分享> > 局部内部类的fina问题、匿名内部类

局部内部类的fina问题、匿名内部类

作者:互联网

局部内部类的fina问题

    /*
* 注意点:局部内部类,如果希望访问在方法的局部变量,那么这个局部变量必须是有(有效final的)
* */
public void MethodOuter(){
final int num =10; //所在方法的局部变量
class Myinner{ // 内不类
public void methodInner(){ //内部方法
System.out.println(num);
}
}
}
}

这里有一个注意点:

 注意点:局部内部类,如果希望访问在方法的局部变量,那么这个局部变量必须是有(有效final的)

备注:在java8以上 在我们写局部变量只要不变,是可以省略final的 

原因:

 

匿名内部类

 

我们先来使用正常的方式来实现一下 

我们来定义一个接口

public interface Anonymous {
public void aa();
}

接口中定义一个方法

然后我们在来写一个实现类

package Anonymous;

public class Anonymousimpl implements Anonymous {

@Override
public void aa() {
System.out.println("实现了接口中的方法");
}
}

来实现这个接口

在来创建一个测试类

public class Test {
public static void main(String[] args) {
Anonymousimpl anonymousimpl = new Anonymousimpl();
anonymousimpl.aa();
}
}

创建出实现接口中的类 来调用方法

 

 然后我们在来看一下匿名内部类

 

        //使用匿名内部类
Anonymous pbj = new Anonymous() {
@Override
public void aa() {
System.out.println("使用匿名内部类实现了接口");
}
};
pbj.aa();
}
}

如果我们要调用一次接口的情况下的话 ,我们可以使用匿名内部类 

这样我们就不用在创建一个实现接口的类了 

我们来看一下运行结果

 

标签:内部,void,局部变量,接口,匿名,Anonymous,fina,public
来源: https://www.cnblogs.com/ssr1/p/16442183.html