java--内部类
一、定义内部类
- 当一个类定义在另一个类的内部,称之为内部类;
- 内部类(Inner)只服务于(Outer),可以获取内部类的属性和方法;
- 定义内部类对象时,一般通过外部类的构造方法或普通方法创建对象。
public class Outer { private String name = "zhang3";//外部类的私有属性 public Outer() { Inner i = new Inner(); i.nameInfo(); } /*内部类Inner*/ class Inner{ //成员内部类 public void nameInfo(){ name = name + "info"; } } public static void main(String[] args) { Outer o = new Outer(); System.out.println(o.name); } }
二、匿名内部类
- 匿名内部类,就是new接口和new抽象类
public interface User{ public void login(); } public class Test01{ public static void main(String[] args){ User u=new User(){ @Override public void login() { System.out.println("show.."); } }; u.login(); } }
三、非静态内部类
外部类名.内部类名 变量名
外部类对象.new 内部类名();
1、非静态内部类必须寄存在一个外部类对象里,因此,如果有一个非静态内部类对象,那么一定存在对应的外部类对象;
2、非静态内部类对象单独属于外部类的某个对象;
3、非静态内部类不能由静态方法,静态属性,静态初始化;
4、外部类的静态方法,静态代码块不能访问非静态内部类,包括不能使用非静态内部类定义变量,创建实例
四、静态内部类
外部类名.内部类名 变量名
new 外部类名.内部类名();
所谓静态内部类,就是使用static关键字修饰的成员内部类,与成员内部内部类相比,在形式上,静态内部类只是在内部类前增加了static关键字,但在功能上,静态内部类中只能访问外部类的静态成员,同时通过外部类访问静态内部类成员时,可以跳过外部类从而直接通过内部类访问静态内部类成员。
本文来自博客园,作者:LXXXXxZz,转载请注明原文链接:https://www.cnblogs.com/l11111/p/16246570.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix