内部类、局部内部类、静态内部类、匿名内部类
调用内部类比较特殊:OuterClass.InnerClass innerClass = outerClass.new InnerClass();
public class OuterClass { private int i = 10; //1成员内部类 class InnerClass{ public void getOuterProperty(){ System.out.println("【内部类获取外部类的私有属性的值】="+i); } } //2局部内部类 public void getLocalClass(){ class LocalClass{//局部内部类上不能有修饰符,或者只能有个final修饰符 public int local_m1(){ System.out.println("【局部内部类获取外部类私有属性】="+i); return (i + 100); } } LocalClass localClass = new LocalClass(); int local_result = localClass.local_m1(); System.out.println("【调用局部内部类方法的返回值+100】="+local_result); } //3静态内部类 public static class StaticInnerClass{ int i = 1000; public void staticInner_m1(){ System.out.println("【静态内部类】="+i); } } //4匿名内部类 Thread thread = new Thread(new Runnable() { @Override public void run() { System.out.println("【匿名内部类】"); } }); //4匿名内部类 AnonymousClass anonymousClass = new AnonymousClass() { @Override public void anonymousClass_m1() { System.out.println("【匿名内部类】"); } }; public static void main(String[] args) { OuterClass outer = new OuterClass(); //1调用成员内部类 OuterClass.InnerClass ic = outer.new InnerClass(); ic.getOuterProperty(); //2调用局部内部类 outer.getLocalClass(); //3调用静态内部类 StaticInnerClass sic = new StaticInnerClass(); sic.staticInner_m1(); //4调用匿名内部类 Thread thread = outer.thread; thread.start(); //4调用匿名内部类 AnonymousClass ac = outer.anonymousClass; ac.anonymousClass_m1(); } } interface AnonymousClass { void anonymousClass_m1(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构