我是靠谱客的博主 欢呼大树,最近开发中收集的这篇文章主要介绍java 匿名内部类访问外部类_java内部类和外部类相关访问总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

内部类的作用:

内部类可以很好的实现功能隐藏,可以添加private、protected等权限控制

可以避免修改接口而实现同一个类中两种同名方法的调用

可是实现多重继承(重要)

内部类和外部类相互调用方式:

一:非静态内部类

内部类调用外部类

1.非静态内部类,不能存在静态方法

2.非静态方法,调用外部类的非静态方法、静态方法都可以直接调用

外部类调用内部类

1.非静态方法,调用内部的非静态方法 new Inner().innerMethod();

2.静态方法,调用内部类的非静态方法 new Outer().new Inner().innerMethod();

二:静态内部类

内部类调用外部类

1.非静态、静态方法,调用静态方法直接调用

2.非静态、静态方法,调用非静态方法 new Outer().outMethod();

外部类调用内部类

1.非静态、静态方法,调用非静态方法 new Outer.StaticInner().innerMethod();

2.非静态、静态方法,调用静态方法 Outer.StaticInner.innerStaticMethod();

**示例代码

public class Outer {

private void outMethod(){

System.out.println("i am out non-static method");

new Inner().innerMethod();

new Outer.StaticInner().innerMethod();

Outer.StaticInner.innerStaticMethod();

}

private static void outStaticMethod(){

System.out.println("i am out static method");

new Outer().new Inner().innerMethod();

new Outer.StaticInner().innerMethod();

Outer.StaticInner.innerStaticMethod();

}

class Inner{

private void innerMethod(){

System.out.println("i am inner non-static method");

outMethod();

outStaticMethod();

}

// //error non-static class canot have static cmethod

// private static void innerStaticMethod(){

// System.out.println("i am inner static method");

// }

}

static class StaticInner{

private void innerMethod(){

System.out.println("i am staticinner non-static method");

outStaticMethod();

new Outer().outMethod();

}

private static void innerStaticMethod(){

System.out.println("i am staticinner static method");

outStaticMethod();

new Outer().outMethod();

}

}

}

最后

以上就是欢呼大树为你收集整理的java 匿名内部类访问外部类_java内部类和外部类相关访问总结的全部内容,希望文章能够帮你解决java 匿名内部类访问外部类_java内部类和外部类相关访问总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部