文章目录
- 内部类
- 1. 内部类的概述
- 2. 局部内部类
- 3. 成员内部类
-
- 注意事项:
-
- 1. 在实例内部类中 不能定义一个静态的成员变量
- 2. 如何实例化,成员内部类的对象
- 3. 成员内部类当中,如果包含了和外部类同名的成员变量,那么如何在成员内部类当中访问
- 4. 如何继承内部类(了解即可)
- 5. 当一个类有内部类的时候的字节码文件(了解即可)
- 4. 静态内部类
-
- 注意事项:
-
- 1. 如何实例化 静态内部类的对象
- 2. 静态内部类当中,如何访问外部类的成员变量
- 5.匿名内部类
内部类 1. 内部类的概述 内部类指的是 把类定义在另一个类的内部,该类就被称为内部类。类名不需要和源文件名相同。
内部类的种类:
在Java中,内部类的使用共有两种情况:
(1). 在类中定义一个类(成员内部类,静态内部类);
(2). 在方法中定义一个类(局部内部类,匿名内部类)。
2. 局部内部类 局部内部类(本地内部类) : 定义在方法当中的类.
只能在当前方法中使用,出了方法就没办法使用.
public class TestDemo {
public void func() {
class In{
private int a;
public String str;
}
//局部内部类 缺点 :只能在当前方法中使用
}
}
3. 成员内部类 成员内部类也叫实例内部类,可以把他当作是外部类的一个普通实例的成员.
class OuterClass {
public int data1 = 1;
private int data2 = 2;
public static int data3 = 3;
// 实例内部类
class InnerClass{
public int data4 = 4;
private int data5 = 5;
public static final int data6 = 6;
public InnerClass() {
System.out.println("不带参数的内部类的构造方法");
}public void test() {
System.out.println("InnerClass::test()");
}
}public void func(){
System.out.println("OuterClass::func1()");
}
}
注意事项: 1. 在实例内部类中 不能定义一个静态的成员变量
文章图片
如果非要定义,只能定义 1 个,静态常量.(static final)
文章图片
2. 如何实例化,成员内部类的对象
外部类名.内部类名 变量 = 外部类对象的引用.new 内部类();
文章图片
3. 成员内部类当中,如果包含了和外部类同名的成员变量,那么如何在成员内部类当中访问
文章图片
4. 如何继承内部类(了解即可)
文章图片
5. 当一个类有内部类的时候的字节码文件(了解即可)
OuterClass$InnerClass
外部类$内部类.class
文章图片
4. 静态内部类
class OuterClass {
public int data1 = 1;
private int data2 = 2;
public static int data3 = 3;
// 静态内部类
static class Innerclass{
public int data4 = 5;
private int data5 = 5;
private static int data6 = 6;
public void test(){
System.out.println("InnerClass::test()");
}
}
}
注意事项: 1. 如何实例化 静态内部类的对象
外部类名.内部类名 变量 = new 外部类名.内部类名();
文章图片
2. 静态内部类当中,如何访问外部类的成员变量
文章图片
5.匿名内部类
class Out{
public void test(){
System.out.println("hello!");
}
}public class Test {
public static void main(String[] args) {
new Out(){};
}
}
【Java|Java SE --- 内部类】
文章图片
匿名内部类调用test()方法.
文章图片
匿名内部类调用重写的test()方法
文章图片
推荐阅读
- 数据结构|数据结构 Java数据结构 --- 二叉搜索树
- 数据结构|数据结构 Java数据结构 ---- 堆(优先级队列)
- 数据结构|数据结构 Java数据结构 --- 二叉树
- javascript|自己用js做一个搜索栏,超级简单
- java|java 基础数据结构_Java实现的基础数据结构
- 笔记|咖啡汪对敖丙老哥Java后端面试心得体会————阿里一面
- java|java 反射的概念
- 面试笔试|2022春招华为笔试题-(2)
- java|咸鱼疯传5W次,字节最新春招面试题泄露