Java中的静态内部类和实例内部类
package com.pzistart.msgdemoimpl.enumtest;
import lombok.Data;
/**
* @author Pzi
* @create 2022-10-19 10:29
*/
public class A {
public static void main(String[] args) {
B b = new B();
b.getB();
B.getC();
System.out.println(b.name);
System.out.println(B.name1);
}
private static String d;
/**
* 静态内部类,可以访问外部类的静态成员
*/
@Data
public static class B {
private String name;
private static String name1;
private void getB() {
}
private static void getC() {
}
}
/**
* 实例内部类,就如同外部类的一个成员变量一样,生命周期和其一致
*/
class C {
private String c;
/*
//静态变量,随着类的加载而加载。而成员内部类是属于类的实例化对象的,所以不能将静态变量成员在这里
private static String d;
public static void getD(){
}*/
private static final String e = "e";
}
/**
* 局部内部类,定义在方法中的
*/
public void outerClassMethod() {
class D {
public void methodD() {
System.out.println("D");
}
}
}
}
静态内部类
1. 可以访问外部类的静态成员。
2. Java中静态内部类可以被实例化,该对象可以调用静态内部类中的非静态成员。b.name b.getB()。
3. 静态内部类名能直接调用类中的静态私有成员变量。B.name1,B.getC()。
实例内部类
如同外部类的一个成员变量一样,生命周期和其一致。不能访问外部类的静态成员。
局部内部类
它是被定义在方法中的,局部内部类中不能定义静态成员。
匿名内部类
- 匿名内部类被定义出来后,就是某个抽象类/接口的子类对象。
- 没有名字的局部内部类就叫做匿名内部类。
- 匿名内部类被定义出来后,就是某个抽象类/接口的子类对象。
调用方式
1. 在其他类中,只能创建类A的静态内部类;不能创建类A的实例内部类。
分类:
Javase
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律