java语言内部类和匿名内部类
内部类
在类定义也有类,在该类上的内部被称为一个内部类。
访问功能:
1,内部类可以直接访问外部类成员,它包含私有成员
2,外部类需要访问内部类的成员将需要建立一流的内部对象。
一般用于类的设计。
分析事物时,发现该事物描写叙述中还有事物,并且这个事物还在訪问被描写叙述事物的内容。
这时就把还有的食物定义成内部类来描写叙述。
直接訪问外部类中的内部类中的成员
class Outer
{
class Inner
{
}
}
class Innerclassdemo
{
public static void main(String [] args)
{
Outer.Inner in =new Outer().new Inner();
}
}
假设一个内部类是静态的。相当于一个外部类,样例例如以下
class Outer
{
static class Inner
{
}
}
class Innerclassdemo
{
public static void main(String [] args)
{
Outer.Inner in =new Outer.Inner();
}
}
注意:假设内部类中定义了静态成员。该内部类也必须是静态的。
内部类訪问外部类的样例
class Outer
{
int num =3;
class Inner
{
int num =4;
void show()
{
int num =5;
System.out.println(num);//5
System.out.println(this.num);//4
System.out.println(Inner.this.num);//4
System.out.println(Outer.this.num);//3
}
}
}
class InnerClass
{
public static void main(String [] args)
{
Outer.Inner in =new Outer().new Inner();
in.show();
}
}
为什么内部类能直接訪问外部类中的成员?
由于内部类持有了外部类的引用。
外部类名.this
局部内部类
在局部内部类中,要訪问外部类的局部变量时,该局部变量须要被final修饰。比較简单就不粘代码了。
匿名内部类
前提:
内部类必须继承一个外部类或实现一个接口。
匿名内部类:就是一个匿名子类对象。
格式:new 父类 or 接口(){子类内容}
通常使用的场景:
当函数參数是接口类型时,并且接口中的方法不超过三个。能够使用匿名内部类作为实际參数进行传递。
abstract class Inter {
abstract void show1();
abstract void show2();
}
class InnerClass
{
public static void main(String []args){
show(new Inter (){
public void show1(){
System.out.println("show1");
}
public void show2(){
System.out.println("show2");
}
});
}
public static void show (Inter in){
in.show1();
in.show2();
}
}
版权声明:本文博主原创文章。博客,未经同意不得转载。
java语言内部类和匿名内部类的更多相关文章
- 十一、Java基础---------内部类与匿名内部类
内部类分为普通内部类(有名)和匿名内部类.普通内部类分为成员内部类.局部内部类.静态内部类(嵌套内部类).顾名思义,内部类就是定义在一个类内部的类.什么时候都会使用内部类呢?当我们定义一个类,发现内部 ...
- java的内部类及匿名内部类
在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类 内部类和外层封装它的类之间存在逻辑上的所属关系 Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称 ...
- Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)
最近一直在看Java的相关东西,因为我们在iOS开发是,无论是Objective-C还是Swift中,经常会用到委托代理回调,以及Block回调或者说是闭包回调.接下来我们就来看看Java语言中是如何 ...
- “全栈2019”Java第一百一十章:局部内部类与匿名内部类区别详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Java之有名内部类和匿名内部类
Java内部类 定义在外部类中的类就是内部类:内部类的定义是为了更清楚.详细地描述事物. 有名内部类和匿名内部类 Java语言根据内部类是否有类名将内部类分为有名内部类和匿名内部类(没有类名). 有名 ...
- Java语言简介、基础组成、封装、继承、多态、抽象类、内部类、接口
目录 Java简介 Java语言基础组成 面向对象 对象 封装 构造函数 this关键字 static(静态关键字) 主函数 静态什么时候用呢? 面向对象(数组工具对象建立) 设计模式 继承 成员变量 ...
- Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)
Java中的内部类(成员内部类.静态内部类.局部内部类.匿名内部类) 神话丿小王子的博客主页 我们先看这样一段话:人是由大脑.肢体.器官等身体结果组成.而组成我们人体的心脏它也有自己的属性和行为(血液 ...
- java之内部类(InnerClass)----非静态内部类、静态内部类、局部内部类、匿名内部类
提起java内裤类(innerClass)很多人不太熟悉,实际上类似的概念在c++里面也有,那就是嵌套类(Nested Class),关于这俩者的区别,在下文中会有对比.内部类从表面上看,就是在类中定 ...
- java 内部类、匿名内部类
一:内部类 1:什么是内部类? 大部分时候,类被定义成一个独立的程序单元.在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类(有些地方也叫做嵌套类),包含内部类的 ...
随机推荐
- Java误区: 静态代码块,当把类将被载入到自己主动运行?
JAVA静态代码块会在类被载入时自己主动运行? 非常多Java开发人员的思想,被这个思想深深的轮奸了n遍,传播这个错误思想的博客,在网上一堆,越来越多的人被轮奸. 如:http://blog.csdn ...
- Socket规划中的局域网内测试
前面提到的Socket信息及文件传输软件,如何测试和使用它? 事实上仅仅要推断client及server的局域网连通就可以. 1.Server在cmd下输入 ipconfig/all获得IP地址或者本 ...
- SQL_substr功能测试
原创作品.从 "深蓝blog" 博客,欢迎转载,请务必注明转载的来源.权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/articl ...
- JGroups 入门实践(转)
前言 JGroups是一个开源的纯java编写的可靠的群组通讯工具.其工作模式基于IP多播,但可以在可靠性和群组成员管理上进行扩展.其结构上设计灵活,提供了一种灵活兼容多种协议的协议栈. JGroup ...
- CSDN上看到的一篇有关Spring JDBC事务管理的文章(内容比较全) (转)
JDBC事务管理 Spring提供编程式的事务管理(Programmatic transaction manage- ment)与声明式的事务管理(Declarative transaction ma ...
- html标和下标应用
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!)
原文:asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!) 我想用post的方式把一个页面表单的值,传到另一个页面.当我点击Default.as ...
- [HAOI2005]路由问题,第二短路
[问题描写叙述] X城有一个含有N个节点的通信网络,在通信中,我们往往关心信息从一个节点I传输到节点J的最短路径.遗憾的是.因为种种原因,线路中总有一些节点会出故障,因此在传输中要避开故障节点 ...
- BZOJ 1009 HNOI2008 GT考试 KMP算法+矩阵乘法
标题效果:给定的长度m数字字符串s.求不包括子s长度n数字串的数目 n<=10^9 看这个O(n)它与 我们不认为这 令f[i][j]长度i号码的最后的字符串j位和s前者j数字匹配方案 例如,当 ...
- NGUI 3.5课程(五岁以下儿童)button-图片切换
然后,我们去了一个样本,做一个button画面切换. 特征,像球员"开始"和"暂停". 写TestButton.cs脚本: using UnityEngine; ...