Java-内部类


个人主页

学习内部类(Inner Class)是Java编程中一项重要且强大的特性,它允许你在一个类的内部定义另一个类。内部类提供了一种将逻辑上相关的类组织在一起的方式,增加了代码的封装性和可读性。接下来带领大家进入內部类的学习。

1静态内部类

2实例内部类

3匿名内部类

一:静态内部类的使用例子:

java 复制代码
class OuterClass{
    public int date1=1;
    private int date2=2;
    public static int date3=3;
    static class InnerClass{
        public int date4=4;
        private int date5=5;
 public static int date6=6;
    public void test(){
       OuterClass outerclass=new OuterClass();
       System.out.println(outerclass.date1);
       System.out.println(outerclass.date2);
       System.out.println(date3);
       System.out.println(date4);
       System.out.println(date5);
       System.out.println(date6);
       System.out.println("InnerClass:::test()");
        }
    }
}
public class Test {
    public static void main(String[] args) {
    OuterClass.InnerClass innerClass=new OuterClass.InnerClass();
    innerClass.test();
    }
}

在静态内部类当中去访问外部类非静态成员,必须通过外部内对象引用来访问。如图所示:


二:实例内部类例子:

java 复制代码
class OuterClass{
    public int date1=1;
    private int date2=2;
    public static int date3=3;
     class InnerClass{
        public int date4=4;
        private int date5=5;
        public static int date6=6;
        public void test(){
            OuterClass outerclass=new OuterClass();
            System.out.println(date1);
            System.out.println(date2);
            System.out.println(date3);
            System.out.println(date4);
            System.out.println(date5);
            System.out.println(date6);
            System.out.println("InnerClass:::test()");
        }
    }
}
public class Test {
    public static void main(String[] args) {
   // OuterClass.InnerClass innerClass=new OuterClass.InnerClass();
    OuterClass outerClass=new OuterClass();
    OuterClass.InnerClass innerClass=outerClass.new InnerClass();
    //OuterClass.InnerClass innerClass=new OuterClass().new InnerClass();
    innerClass.test();
    }
}

当有与外部相同的成员变量时,则访问的是实例内部类的成员变量。如图;得到的是date1=99.

那么要访问外部类的date1可以通过外部內类名(OuterClass.this.date1)就可以。

三:匿名内部类的例子:

匿名内部类(Anonymous Inner Class)是Java中一种没有名字的内部类,通常用于简化代码或实现一次性的、简单的类定义。

java 复制代码
class 0uterClass {
    public void test(){
        System.out.println("OuterClass:::test()");
        }
}
public class Test{
    public static void main(String[] args) {
    new 0uterClass(){
        @Override
        public void test(){
                System.out.println("重写了test()方法:::");
            }
        }.test();
    }
}
相关推荐
腻害兔2 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社2 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
萧瑟余晖3 小时前
JDK 26 新特性详解
java·开发语言
马优晨4 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
维天说7 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
Zane19947 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
噢,我明白了8 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
吠品8 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
啊湘8 小时前
天气查询API接口 按月Token鉴权 实时天气 物联网可用 文档齐全
java·后端·struts
Java内核笔记9 小时前
告别十亿美元的错误 : Spring Boot 4 空安全 (JSpecify) 实战
java·spring boot·后端