Java的四种内部类(成员内部变量,静态内部变量,局部内部类,匿名内部类)
内部类
- 内部类就是在一个内的内部再定义一个内
- 内部类的分类:成员内部类,静态内部类,局部内部类,匿名内部类
(1)成员内部类
- 指类中的一个普通成员,可以定义成员属性,成员方法
- 内部类是可以访问外部类的成员和实例的
成员内部类的定义
//外部类
public class Outer{
//定义成员内部类
public class Inner{
private String name; //内部类的成员属性
public static String schoolName; //静态成员变量
public void test(){ //定义方法
}
}
}
成员内部类的使用
注意:必须要先创建外部类的对象,内部类的对象才能够被创建
Outer.Inner in = new Outer().new Inner();
in.test(); //之后跟其他类的使用没什么区别
- 如果外部类和成员内部类有相同的属性,访问内部类属性使用this;访问外部类属性使用外部类名称+this
this.age; //内部类的属性
Outer.this.age; //外部类的属性
(2)静态内部类
- 有static修饰的内部类,属于外部类自己持有。
- 静态内部类与成员内部类的使用基本一致,但静态内部类只能访问外部类的静态成员变量。
(3)局部内部类
- 局部内部类就是定义在方法,代码块,构造器等执行体中。
(4)匿名内部类
- 匿名内部类是特殊的局部内部类,匿名指的是不需要声明名字
- 如果匿名内部类为空,则编译器会报错
- 匿名内部类本质就是一个子类,并且会创建出一个子类对象
- 匿名内部类可以更方便的创建出一个子类对象,通常作为一个参数传递给方法。
//内部类声明
new 类或接口(参数){
}
使用示例
public calss Test{
new Animal(){ //匿名内部类
public void cry(){
}
}
}
abstract class Animal{
public abstract void cry();
}
Java的四种内部类(成员内部变量,静态内部变量,局部内部类,匿名内部类)的更多相关文章
- Java的四种内部类
Java的四种内部类包括如下: 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类: 定义在另一个类(外部类)的内部,而且与成员方法和属性平级叫成员内部类,......相当于外部类的非静态方法 ...
- java的四种内部类详解
引言 内部类,嵌套在另一个类的里面,所以也称为:嵌套类; 内部类分为以下四种: 静态内部类 成员内部类 局部内部类 匿名内部类 一.静态内部类 静态内部类: 一般也称"静态嵌套类" ...
- Java的四种内部类(含代码实例)
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- 类与接口(二)java的四种内部类详解
引言 内部类,嵌套在另一个类的里面,所以也称为 嵌套类; 内部类分为以下四种: 静态内部类 成员内部类 局部内部类 匿名内部类 一.静态内部类 静态内部类: 一般也称"静态嵌套类" ...
- java的四种内部类(转)
一般来说,有4中内部类:常规内部类.静态内部类.局部内部类.匿名内部类. 一.常规内部类:常规内部类没有用static修饰且定义在在外部类类体中. 1.常规内部类中的方法可以直接使用外部类的实例变量 ...
- java中四种引用类型
java中四种引用类型 今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混.后来在 ...
- java中四种引用类型(对象的强、软、弱和虚引用)
对象的强.软.弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK 1.2 ...
- Java中四种访问权限总结
一.Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private.public.protected,还有一种不带任何修饰符(default). 1. private: Java语言中对访 ...
- Java中四种引用:强、软、弱、虚引用
这篇文章非常棒:http://alinazh.blog.51cto.com/5459270/1276173 Java中四种引用:强.软.弱.虚引用 1.1.强引用当我们使用new 这个关键字创建对象时 ...
- Java基础:Java的四种引用
在Java基础:java虚拟机(JVM)中,我们提到了Java的四种引用.包括:强引用,软引用,弱引用,虚引用.这篇博客将详细的讲解一下这四种引用. 1. 强引用 2. 软引用 3. 弱引用 4. 虚 ...
随机推荐
- 质量管理 | QC、QA、QM,去QA化与降本增效
现在国内职业的质量管理都是从 CMMI 和 ISO 质量体系演化过来的,但是能做真正的质量管理的公司很少.质量管理的 QC 偏测试,对最终的产品负责:QA 偏过程,从过程把控质量:QM 偏体系,类似于 ...
- Python字符串操作函数split()和join()
字符串拆分 在python中有切片(Slice)操作符,可以对字符串进行截取,还提供了split()函数可以将一个 字符串分裂成多个字符串组成的列表.在使用split()函数来拆分字符串之前,我们先来 ...
- 构建iOS交叉编译环境
要进行高级的iOS编程,我们需要很多工具链来帮我们完成这一目的 构建iOS交叉编译环境: 1.新建一个iphone交叉编译虚拟机 2. 为我们的虚拟机添加第二个网卡,设为host-only来达到能与宿 ...
- 使用极速全景图下载大师下载720yun全景图片(一键下载建E、720云全景原图)
VR全景图片下载 软件简介 极速全景图下载大师下载地址: 点击进入下载页面 极速全景图下载大师(VR全景图下载器)软件官网: 点击进入官网 极速全景图下载大师如何下载720yun全景图片 1.首先,在 ...
- Nacos启动报错:Please set the JAVA_HOME variable in your environment, We need java(x64) jdk8 or later
可能原因: 1.JDK版本过低(应不低于1.8) 2.未设置jdk环境变量(可能性低) 3.jdk环境变量设置不适配nacos(博主就是这个原因) 解决方案: 1.直接在startup.cmd文件中设 ...
- oracle 12C提示:ORA-28001口令已经失效
oracle 12C 提示口令已经失效,此用户是pdb用户,解决办法:1 系统管理员身份登陆 sqlplus / as sysdba 2 转到对应的pdb容器中 alter session set c ...
- 深入理解 python 虚拟机:生成器停止背后的魔法
深入理解 python 虚拟机:生成器停止背后的魔法 在本篇文章当中主要给大家介绍 Python 当中生成器的实现原理,尤其是生成器是如何能够被停止执行,而且还能够被恢复的,这是一个非常让人疑惑的地方 ...
- 调节LED的亮度
虽然Devices Plus已经介绍过Arduino的多种应用和作品示例,但是了解相关基础知识对于任何项目的构建仍然是非常重要的!这次,我们将为您介绍Arduino电子制作的基础知识.此次的分享嘉宾是 ...
- 第七单元《中国传统文化与管理》单元测试 mooc
第七单元<中国传统文化与管理>单元测试 返回 本次得分为:8.00/10.00, 本次测试的提交时间为:2020-08-30, 如果你认为本次测试成绩不理想,你可以选择 再做一次 . 1 ...
- DPDK-22.11.2 [四] Virtio_user as Exception Path
因为dpdk是把网卡操作全部拿到用户层,与原生系统驱动不再兼容,所以被dpdk接管的网卡从系统层面(ip a/ifconfig)无法看到,同样数据也不再经过系统内核. 如果想把数据再发送到系统,就要用 ...