四种内部类
内部类就是存在于一个类里面的拥有从属关系的另外一个类,它主要有以下几种:
- 普通内部类
- 静态内部类
- 匿名内部类
- 局部内部类
普通内部类
它的定义也很简单,在一个类里面作为类的一个字段直接定义就可以了,如:
public class InnerClassTest {
public class InnerClassA {//普通内部类
}
}
内部类对象可以访问外部类对象中所有访问权限的字段,同时,外部类对象也可以通过内部类的对象引用来访问内部类中定义的所有访问权限的字段
静态内部类
静态内部类也是作为一个外部类的静态成员而存在,创建一个类的静态内部类对象不需要依赖其外部类对象。
public class InnerClassTest {
static class InnerClassA {//静态内部类
}
}
需要注意的是,静态内部类的对象无法访问外部类的非静态成员,静态内部类本身就是独立于外部类对象以外的,且一个类里面只能有一个public修饰符
匿名内部类
通俗来说匿名内部类就是没有名字的类,在创建对象的时候直接通过对象.方法来调用它,一般匿名内部类存在于java文件中,和其他的类没有从属关系,
class Test{
Public static void main(String [args]){
new Sever(){
//这里就是new了一个接口的对象,但是该对象没有名字,在里面可以直接重写接口方法
}
public void eat(){
System.out.println("真好吃");
}
}
}
class Test1{
new Test().eat();//不把这个Test对象赋名也可以直接使用它的eat方法
}
interface Sever{
void Method();
}
局部内部类
内部类也可以存在于方法里面,这样的内部类就叫做局部内部类
public class Outer{
public void method(){
class inner{
//inner就是一个局部内部类
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现