定义:在一个类中定义一个类,就叫内部类。
成员内部类:定义在类中方法外的叫成员内部类
局部内部类:定义在方法中的叫局部内部类
•成员内部类:
a、创建不带修饰符的普通成员内部类对象的格式:外部类名.内部类名 对象名 = new 外部类对象().new 内部类对象();
b、私有成员内部类对象只能在所属外部类创建,如果使用私有内部类的方法,先创建外部类对象,在通过外部类的方法访问私有内部类方法;
c、创建静态成员内部类对象的格式:外部类名.内部类名 对象名 = new 外部类对象.内部类对象();
public class InnerTest { public static void main(String[] args) { // 创建不带修饰符的普通成员内部类对象的格式:外部类名.内部类名 对象名 = new 外部类对象().new 内部类对象(); Outer.Inner inner = new Outer().new Inner(); System.out.println(inner.num); inner.show(); // 私有成员内部类对象只能在所属外部类创建,如果使用私有内部类的方法,先创建外部类对象,在通过外部类的方法访问私有内部类方法; Outer o = new Outer(); o.method(); // 创建静态成员内部类对象的格式:外部类名.内部类名 对象名 = new 外部类对象.内部类对象(); Outer.Inner2 inner2 = new Outer.Inner2(); inner2.show(); // 静态成员内部类中的静态方法调用格式 Outer.Inner2.show1(); // 局部内部类只能在方法中定义,访问时只能在方法中创建对象访问 o.test(); } } class Outer { int a = 5; private int b = 6; public void outherShow() { Inner i = new Inner(); System.out.println(i.num); } // 成员内部类 class Inner { int num = 10; public void show() { // 内部类访问外部类成员可以直接访问,包括私有 System.out.println(a); System.out.println(b); System.out.println("成员内部类。。。"); } } // 私有成员内部类 private class Inner1 { public void show() { // 内部类访问外部类成员可以直接访问,包括私有 System.out.println("私有成员内部类。。。"); } } public void method() { Inner1 i = new Inner1(); i.show(); } // 静态成员内部类 static class Inner2 { public void show() { // 内部类访问外部类成员可以直接访问,包括私有 System.out.println("静态成员内部类。。。"); } public static void show1() { // 内部类访问外部类成员可以直接访问,包括私有 System.out.println("静态成员内部类静态成员方法。。。"); } } public void test() { // 局部内部类 只能定义在方法中,只能在方法中创建对象访问 class Inner3 { public void show() { System.out.println("局部内部类。。。"); } } Inner3 i3 = new Inner3(); i3.show(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix