文档章节

Java的内部类

西红柿的眼泪
 西红柿的眼泪
发布于 2016/07/09 14:33
字数 696
阅读 51
收藏 0

类是java中定义的一个独立的程序单元,在某种情况下也可以把一个类放在另外一个类的内部定义,这定义在内部的类就叫内部类或嵌套类。

1.内部类提供了更好的封装,把一个内部类隐藏在外部类之内。内部类成员可以直接访问外部类的私有数据。内部类成员可以直接访问外部类的私有数据,匿名内部类是适合用于创建那些仅需要使用一次的类。内部类和外部类的区别,内部类可以比外部类多使用三个修饰符private、protected、static;非静态内部类不能拥有静态成员

2.一般内部类都被作为内部类定义,和类中的成员变量、方法、构造器、初始化块的类成员相似的类成员,局部内部类和匿名内部类则不是类成员。成员内部类可以分为两种:静态内部类和非静态内部类。外部类只能有两个作用域一个是同一个包内和任意位置,而内部类可以使同一个包内,同一个类内,父子类和任何位置。内部类编译完后也是一个.class文件,但依托于父类。

3.用static修饰的静态内部类,静态内部类不属于外部类的对象而是属于外部类的本身。静态内部类是外部类的一个静态成员,因此外部类的所有方法、所有初始化块可以使用静态内部类来定义变量、创建对象。但外部类依然不能直接访问静态内部类的成员。

4.内部类的使用,在外部类里使用内部类和不同的类一样,定义变量创建实例和作为父类被继承;在外部类以外使用非静态内类(不能用private修饰);在外部类以外使用静态内部类。

5.局部内部类是定义方法内部的一个类,对于局部成员而言,不管是局部变量还局部内部类,他们的上一级程序单元是方法而不是类,使用static修饰他们没有任何意义。

6.匿名内部类,创建匿名内部类是会立即创建一个类的实例,这个类定义立即消失,匿名内部类不能重复使用。匿名内部类的格式如下:new 实现接口()| 父类构造器(实参列表){  匿名内部类的类体方法 };匿名内部类不能是抽象的类、匿名内部类不能定义构造器。

© 著作权归作者所有

共有 人打赏支持
上一篇: Java的Lambda表达式
下一篇: Java接口
西红柿的眼泪
粉丝 4
博文 48
码字总数 39713
作品 0
郑州
程序员
私信 提问
【目录导航】JAVA零基础进阶之路

【JAVA零基础入门系列】(已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day6 Java字符串 Day7 Java输入与输出...

MFrank
06/21
0
0
JAVA笔记——static class

Java中的类可以是static吗?答案是可以。在java中我们可以有静态实例变量、静态方法、静态块。类也可以是静态的。 java允许我们在一个类里面定义静态类。比如内部类(nested class)。把nes...

AlexanderWee
09/06
0
0
Java中的内部类实例初始化匿名函数(JLS7 8.6:Instance Initializers)

偶尔发现了一段好玩的java代码,关于Java内部类的,觉得很有意思,但是想不明白这段代码是java语法的特性哪?还是别的什么。最后发现还是对java了解的不够深啊。先上代码: import java.util...

qalong
2013/09/02
0
0
new和反射产生java内部类的实例化详解

前两天看到一道口试题,是关于内部类的知识,觉得很有意思。 这道题是这样的: 根据注释填写(1),(2),(3)处的代码 public class Test{ ?????? public static void main(String[] args){ ??...

zaizai_loong
2013/09/02
0
0
Java static和匿名内部类

-- static Java中,任何变量 / 代码存储时,都是 在编译时 由系统自动分配内存; 在静态变量编译后,所分配的内存会一直存在,直到程序退出内存才会释放这个空间; 类加载时,JVM会把静态变量...

desaco
10/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 快捷键

快捷键图标。 官方的下载地址为:https://atlassianblog.wpengine.com/wp-content/uploads/2018/01/keyboard-shortcuts-infographics.pdf...

honeymose
今天
3
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
4
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
5
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部