Java基础:内部类

1|0Java基础:内部类



1|1N种内部类

  • 常见的内部类:
    • 常规内部类
    • 静态内部类
    • 局部内部类
    • 匿名内部类

1|0常规内部类

  • 没有 static 关键字修饰且定义在外部类中

  • 内部类可以直接访问外部类的私有属性

  • 示例:

    public class Outer { private int id = 10; //私有属性 public void out() { System.out.println("这是外部类的方法"); } public class Inner { public void in() { System.out.println("这是内部类的方法"); } //获取外部类的私有属性 public void getID() { System.out.println(id); } } }
    public class Application { public static void main(String[] args) { Outer outer = new Outer();//实例化外部类 outer.out(); //通过外部类来实例化内部类 Outer.Inner inner = outer.new Inner();//实例化内部类 inner.in(); inner.getID(); } }

    输出

    这是外部类的方法 这是内部类的方法 10

1|0静态内部类

  • 与常规内部类不同,静态内部类有 static 关键字修饰且定义在外部类中

  • 不能直接访问外部类的非静态属性

  • 示例

    public class Outer { private static int id = 10; //私有属性 public static class Inner { //静态内部类只能直接访问外部类的静态属性 //获取外部类的静态属性 public void getID() { System.out.println(id); } } }
    public class Application { public static void main(String[] args) { Outer outer = new Outer(); //通过外部类来实例化内部类 Outer.Inner inner = new Outer.Inner();//实例化静态内部类 inner.getID(); } }

    输出

    10

1|0局部内部类

  • 定义在方法体或语句块中的类

  • 不能加访问任何修饰符

  • 示例:

    public class Outer { public void method() { //第一种局部内部类 class Inner{ } } } //一个java类中,可以有多个class类,但是只能有一个public类 //第二种局部内部类 class A{ }

1|0匿名内部类

  • 没有名字初始化类,不用将实例保存到变量中

  • 示例:

    public class Test { public static void main(String[] args) { //没有名字初始化类,不用将实例保存到变量中 new Apple().eat(); //匿名内部类 new UserService() { //匿名内部类 @Override public void hello() { } }; } } class Apple { public void eat(){ System.out.println("1"); } } interface UserService{ void hello(); }

__EOF__

本文作者userName
本文链接https://www.cnblogs.com/dt746294093/p/14655085.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   D..T  阅读(50)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示