成员内部类和局部内部类
成员内部类
我们在外部类中定义一个成员内部类,这个内部类和成员变量成员方法是同级的
/** * 外部类 */ class Outter{ private String name = "张三"; /** * 内部类 */ class Inner{ public void show(){ System.out.println(name); } } void info(){ } }
如何在外部获取内部类对象
内部类非私有
格式:
外部类名.内部类名 对象名 = 外部类对象.内部类对象;
public class OOPDemo01 { public static void main(String[] args) { Outter.Inner inner = new Outter().new Inner(); inner.show(); } } /** * 外部类 */ class Outter{ private String name = "张三"; /** * 内部类 */ class Inner{ public void show(){ System.out.println(name); } } void info(){ } }
运行结果:
内部类私有
内部类作为外部类的成员,那么是可以用private来修饰的,既然用private修饰那也就意味着外界是没办法直接获取对象的,
同时我们也没法通过相关的类型来接收,但是我们可以在外部类中提供相关的getter/setter方法来处理
package com.example.ObjectOriented.Interface1.oop10; public class OOPDemo01 { public static void main(String[] args) { Outter outter = new Outter(); outter.setInner(); System.out.println(outter.getInner()); } } /** * 外部类 */ class Outter{ private String name = "张三"; /** * 内部类 */ private class Inner{ public void show(){ System.out.println(name); } } public void setInner(){ Inner inner = new Inner(); inner.show(); } public Inner getInner(){ Inner inner = new Inner(); return inner; } void info(){ } }
运行结果:
局部内部类
成员内部类我可以理解为和成员变量同级,那么局部内部类我们也可以理解为和局部变量同级的内部类
package com.example.ObjectOriented.Interface1.oop10; public class OOPDemo02 { public static void main(String[] args) { Outter02 outter02 = new Outter02(); outter02.show(); } } class Outter02{ int num = 20; public void show(){ num =30; /** * 定义局部内部类 */ class Inner{ public void info(){ System.out.println("info。。。"); } } Inner inner = new Inner(); inner.info(); System.out.println(num); } }
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix