Java SE --- 内部类

  • 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 外部类名.内部类名();

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值