内部类
4.1 内部类概述
1.知识盲区梳理:
- Java中的方法不可以嵌套,但是可以相互调用
- 类可以嵌套,可以有内部类和匿名类
2.内部类的产生原因:
-
如果我们想要一个不被外界访问的私有类,要如何实现呢?
我们看下面的写法
private class 类名{}
这是不被允许的,private定义的类是一个死类,没有意义,不被允许这样写!!!
-
那我们要怎么写呢?
这就引出了内部类
3.内部类的概念:
内部类:就是在一个类中定义一个类。
举例:在一个类A的内部定义一个类B,类B就被称为内部类
4.内部类的定义格式:
-
格式
public class 类名{ 修饰符 class 类名{ } }
-
范例
public class Outer{ public class Inner{ } }
5.内部类的访问特点⭐⭐⭐
- 内部类可以直接访问外部类的成员变量,包括私有
- 外部类要访问内部类的成员变量,必须在外部创建对象
6.内部类的特点:(网络)⭐
-
它体现了一种代码的隐藏机制和访问控制机制,内部类与所在外部类有一定的关系,往往只有该外部类调用此内部类,所以没有必要专门用一个Java文件存放这个类。⭐
-
一般的类是不允许用private修饰符的,但是内部类却可以,该实例中,类Inner只对Outer可见,其他的类无法访问的到Inner类。
注意,这里有个例外,**如果内部类的访问修饰符被设定为public,那么它是可以被其他类使用的,但是必须经由外部类来实例化内部类。**⭐
-
它包含有一个对外部类的this指针,从而可以访问外部类的所有元素,包括所有public/private的成员和方法
另一方面,反向的,外部类对内部类的所有元素也都有访问权,包括内部类的私有成员和方法⭐
代码案例: