Java——匿名内部类
* 匿名内部类, 就是内部类的简写形式。
*
*
必须有前提:
*
内部类必须继承或者实现一个外部类或者接口。
* 匿名内部类其实就是一个子类对象。
*
* 格式:new 父类or接口名 {}
*/
interface Inter
{
void show1();
void show2();
}
class Outer1
{
public void method()
{
/*
* 通常的使用场景之一:
*
当函数参数是接口类型时,而且接口中的方法不超过3个*
可以使用匿名内部类作为实际参数进行传递。*/
Inter inter = new Inter()
{
@Override
public void show1()
{
// TODO Auto-generated method stub
System.out.println("实现show1()");
}
@Override
public void show2()
{
// TODO Auto-generated method stub
System.out.println("实现show2()");
}
};
/*
* 编译看左边
* 运行看右边
*/
inter.show1();
inter.show2();
}
}
class Outer2
{
public void show3(Inter inter)
{
inter.show1();
inter.show2();
}
//调用show3()函数时 向里边传递一个匿名内部类 就是 不想再去定义一个类 然后 去继承这个借口
public void show4()
{
show3
( new Inter()
{
@Override
public void show1()
{
// TODO Auto-generated method stub
}
@Override
public void show2()
{
// TODO Auto-generated method stub
}
}
);
}
}
//注意事项***********************************
class Outer3
{
void method()
{
Object obj = new Object()
{
public void show()
{
System.out.println("内部类的函数");
}
};
obj.show();//错误使用 ----------以为匿名内部类这个子类对象被转成为了Object类型
//这样就不能在使用子类特有的 方法了。
}
}
练习题目
版权声明:本文为博主原创文章,未经博主允许不得转载。
Java——匿名内部类的更多相关文章
- #随笔之java匿名内部类
随笔之java匿名内部类 从今天起开始每日一篇技术博客,当然这只是我当天所学的一些随笔,里面或多或少会有理解不当的地方,希望大家多多指教,一起进步! 在讲匿名内部类之前,先讲讲内部类的一些概念. 1. ...
- 从一开始,说出事java匿名内部类
java内部类.匿名类原本以为它们的使用已经很滑, 成绩, 就在昨天晚上12指向时钟发生重大事故.事故的严重程度再说吧,那是因为我没有睡一晚睡眠. 那以下先用一段模拟代码来描写叙述下我出现的问题的: ...
- (转)java匿名内部类详解
原文:http://android.blog.51cto.com/268543/384844/ 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. *内部类可以是静态static的 ...
- 【Java学习笔记之二十六】深入理解Java匿名内部类
在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...
- 【50】java 匿名内部类剖析
匿名内部类介绍: 匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 匿名内部类的声明 ...
- JAVA匿名内部类(Anonymous Classes)
1.前言 匿名内部类在我们JAVA程序员的日常工作中经常要用到,但是很多时候也只是照本宣科地用,虽然也在用,但往往忽略了以下几点:为什么能这么用?匿名内部类的语法是怎样的?有哪些限制?因此,最近,我在 ...
- Java匿名内部类访问外部
匿名内部类访问外部局部变量必须是final修饰的,Java 1.8 会默认为其加上final 例子如下: public void send(String topicName, T obj) { Str ...
- 为什么Java匿名内部类访问的外部局部变量或参数需要被final修饰
大部分时候,类被定义成一个独立的程序单元.在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类,包含内部类的类也被称为外部类. class Outer { priv ...
- Java 匿名内部类 & 内部类
一.JAVA中内部类和匿名内部类的区别 内部类:内部类可以是static的或者非static的,static内部类只能包含静态方法和静态类变量,只能访问外部类的静态元素,内部类可以实例化,多次使用. ...
- java匿名内部类使用场景列举
示例一: package com; interface Operation { double operateTwoIntNum(int a, int b); } p ...
随机推荐
- 开源留言板 --wekan部署
1. 安装ubuntu--server-64位系统 2. 登录ubuntu系统 3. 下载自动安装脚本 #git clone https://github.com/anselal/wekan 4. 执 ...
- win8系统 host文件无法修改解决之道
host文件,路径为:C:\windows\system32\drivers\etc\hosts 方法/步骤: 方法1:用notepad++打开host文件,修改和保存 方法2:(1)首先用管理管权限 ...
- poj2769 暴力
//Accepted 208 KB 157 ms //纯暴力 //vis数组初始化时要用多少设置多少,不然TLE #include <cstdio> #include <cstrin ...
- 保存现场数据和状态:onSaveInstanceState\onRestoreInstanceState\onCreate()
当某个activity变得“容易”被系统销毁时,该activity的onSaveInstanceState就会被执行,除非该activity是被用户主动销毁的,例如当用户按BACK键的时候. 注意上面 ...
- (spring-第11回【IoC基础篇】)BeanWrapper--实例化Bean的第四大利器
重复是理解和记忆的最好方法.在讲实例化Bean的每个步骤之前,我都会先复习一下Bean实例化的整个过程: 结合图片我们回顾一下具体的过程: ResourceLoader加载配置信息, 由BeanDef ...
- 集合set的使用
将无序对象储存在集合中 集合是类似于数组的一组对象,只是其中包含的项目是无序的(而数组是有序的).您通过枚举集合中的对象,或者将过滤器或测试应用到集合,来随机访问集合中的对象(使用 anyObject ...
- js 检测 flash插件以及版本号 通用所有浏览器
var fls = flashChecker(); if (fls.h) { if (fls.v < parseFloat('8.0')) { alert("您当前的flash pla ...
- AmazeUI常用组件
按钮样式 <span class="am-badge">1</span> #正方形 <span class="am-badge am-ba ...
- Bootstrap全局css
HTML中的所有标题标签,<h1>到<h6>均可使用.另外,还提供了.h1到.h6类,为的是给内联(inline)属性的文本赋予标题的样式.在标题内还可以包含<small ...
- log4j 应用
前言: 该片文章旨在对于刚入门的log4j学习的同学们,看完这篇,应该可以提高了. 主要内容还是根据log4j的配置文件中的各个配置来进行解析 正文: log4j 使用参数 log4j配置文件示例: ...