JAVA中的内部类(二)成员内部类
JAVA 内部 成员
2023-09-14 09:06:16 时间
Java中的成员内部类(实例内部类):相当于类中的一个成员变量,下面通过一个例子来观察成员内部类的特点
public class Outer {
//定义一个实例变量和一个静态变量
private int a;
private static int b;
//定义一个静态方法和一个非静态方法
public static void say(){}
public void test(){
//在外部类中调用内部类的属性和方法
Inner inner = this.new Inner();
inner.d = 1; //通过创建内部类实例来调用内部类属性
inner.walk(); //通过创建内部类实例来调用内部类方法
}
//成员内部类
public class Inner{
//定义一个静态常量
static final int m = 1;
//在内部类中定义一个静态变量和一个实例变量
//static int c; 编译出错
int d;
//定义一个匿名代码块和一个静态代码块
{}
//static{} 编译出错
//定义一个静态方法和一个普通方法
//public static void go(){} 编译出错
public void walk(){
//在内部类中调用外部类的属性和方法
a = 1;
b = 1;
say();
test(); //内部类可以直接访问外部类的所有属性和方法
}
}
}
总结:
1、成员内部类可以由public protected default private修饰
2、成员内部类是依赖于外部类的对象而存在的,在创建成员内部类的实例时,外部类的实例必须已经存在。
3、成员内部类可以包含哪些内容
1)匿名代码块
2)非静态属性
3)非静态方法
注意:成员内部类中不能有静态属性和方法但可以有静态常量(即用static final修饰的属性),因为在类加载时会初始化static修饰的内容,而成员内部类必须依赖于内部类对象,即成员内部类要在外部类加载之后加载,所以不能包含静态的变量和方法。使用final修饰的静态变量类加载时会自动初始化其值,将其作为一个常量,所以可以出现在内部类中。
4、外部类访问内部类
外部类可以通过创建成员内部类实例来访问成员内部类中的属性和方法
5、成员内部类访问外部类
成员内部类可以直接访问外部类的所有属性和方法
注意: 如果成员内部类B与外部类A包含同名的成员,那么在类B中, this.v表示类B的成员, A.this.v表示类A的成员。
6、创建内部类实例的方法
1)在外部类中创建:内部类名 name = this.new 内部类名();
2)在非外部类中创建:外部类名.内部类名 name = new 外部类名().new 内部类名();
相关文章
- Java面向对象高级--匿名内部类
- Java面向对象基础--内部类
- Java实现 LeetCode 629 K个逆序对数组(动态规划+数学)
- Java实现 LeetCode 18 四数之和
- java实现猜生日
- java实现第五届蓝桥杯写日志
- java实现第六届蓝桥杯灾后重建
- java实现子集和问题
- Java通过继承外部类来建立该外部类的protected内部类的实例(转)
- Java注解(Annotation)原理详解(转)
- Java核心知识点学习----线程同步工具类,CyclicBarrier学习
- Java面向对象编程篇4——内部类
- Atitit JAVA p2p设计与总结 JXTA 2
- java web 拦截器、过滤器理解
- 【项目实战】使用轻量级工具 java-emoji-converter 处理emoji表情字符
- java字符串练习题8、同构字符串
- 基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - 内部框架及UI自动化测试框架思维导图
- JAVA只要掌握内部类,多继承和单继承都不是问题
- Java学习之CharSequence(字符序列)接口
- JAVA中的内部类(一)静态内部类
- 这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析
- Java中常见的排序算法
- java中的匿名内部类总结
- Java Logger(java日志)
- Java 内部类
- java-基础-【二】内部类与静态内部类
- Java Web系统经常使用的第三方接口
- java中的匿名内部类
- java程序员修炼之道
- JAVA篇----内部类
- 基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - 内部框架及UI自动化测试框架思维导图
- 【Java】类包、内部类
- java学习笔记——权限修饰符、内部类
- java编程入门 常见问题0004:不注意代码的层级结构,外部类的构造方法放到内部类中
- 利用Jenkins实现java-cms项目自动化上线及回滚(七)