内部类、内置类、嵌套类
来源:互联网 发布:redis实战java代码 编辑:程序博客网 时间:2024/06/05 03:37
明确:内部类=内置类=嵌套类(由于翻译的问题造成)
1、定义:
就是将一个类定义在另一个类的里面,里面的那个类就称为内部类。
2、访问特点
(1)内部类可以直接访问外部类中的数据,包括私有成员。
(2)而外部类要访问内部类中的成员必须建立内部类的对象。
3、编译生成的文件名
外部类名$内部类名.class其中名字含有所属关系
4、为什么要使用内部类呢?
可以使访问变量更加简单。
eg1:
(1)
```class outer{ private int a=3;}class inter { void show() { System.out.println("show run..."+a); } }class outer{private int a=3;class inter{ void show() { System.out.println("show run..."+a); } }}
(1)中的两个对象,如果inter想要访问outer中的a,必须通过建立实例化对象进行访问。而对于(2)中的inter则不需如此繁琐,可以直接访问,因为inter是outer中的一个部分。
eg2:(有点不恰当,纯属娱乐)
孙悟空向铁扇公主借扇子——飞到肚子里和在肚子外,肚子外没借到,但是肚子里就可以借到了。
5、一般用于对类的设计
分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容,这时就可以使用内部类了。
eg:身体
心脏设计在身体内,因为心脏要访问身体内部的很多部分,所以直接设计在身体里面。
6、内部类的修饰符
(1)直接访问外部类中的内部类的成员——格式:外部类名.内部类名=new 外部类对象.内部类对象();
eg: outer.inter=new outer().new.inter();
(2)当内部类是一个静态类时,相当于一个外部类,应为outer加载时,inter就加载了。
eg:outer.inter i=new outer.inter();//此时直接调用即可,不用在new inter
i.show();
(3)当内部类是静态时,成员也是静态时,(如果内部类定义了静态成员,该内部类也必须是静态的)
eg: outer.inter.show();
7、细节辨析
(1)
class outer{ int num=3; class inter { int num=4; void show() { int num=5; System.out.println("num="+num); } void show1() { new inter().show(); } }}public class innerClassDemo {public static void main(String[] args){ new outer().show1();}}
输出:5
(2)
class outer{ int num=3; class inter { int num=4; void show() { int num=5; System.out.println("num=“+this.num); } void show1() { new inter().show(); } }}public class innerClassDemo {public static void main(String[] args){ new outer().show1();}}
输出:4
(3)
class outer{ int num=3; class inter { int num=4; void show() { int num=5; System.out.println("num=“+outer.this.num); } void show1() { new inter().show(); } }}public class innerClassDemo {public static void main(String[] args){ new outer().show1();}}
输出:3
解释:为什么内部类能直接访问外部内的成员呢? 因为内部类持有了外部类的引用——外部类名.this 由此可知内部类和外部类也是依赖于对象进行引用。
0 0
- 内部类、内置类、嵌套类
- 内部类(嵌套类、内置类)访问规则、定义原则、静态内部类、匿名内部类
- java 内部类(内置类,嵌套类)
- JAVA内部类(内置类,嵌套类)
- 匿名内部类、内部类、嵌套类
- 内部类和嵌套类
- 内部类与嵌套类
- 嵌套类与内部类
- 内部类和嵌套类
- 内部类与嵌套类
- java 内部类、匿名内部类、嵌套类的使用
- Java中的嵌套类、内部类、静态内部类
- 嵌套类,内部类,匿名内部类再学习
- Java中的嵌套类、内部类、静态内部类
- 第十章 内部类 内部类和嵌套类
- Java中的嵌套类、内部类、静态内部类
- Kotlin编程之嵌套类,内部类,匿名内部类
- Java中的嵌套类、内部类、静态内部类
- 3Sum leetcode第15题 Java代码
- C语言冒泡排序算法
- java基础算法之通过辗转相除求 最大公约数
- java String 类的常用方法
- js闭包个人理解--to be continued
- 内部类、内置类、嵌套类
- DELL服务器IPMI管理界面无法登录问题解决
- ubuntu下解决windows文档显示中文乱码
- Android系统篇之----Android中的智能指针
- javascript 替换所有图片
- RxJava----操作符:辅助操作符
- SQLite使用_android
- Hive1.2本地模式安装教程--hive学习
- WebSocket实战