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 ...
随机推荐
- UIView 翻转动画
[_mapView removeFromSuperview]; [self addSubview:_tableView]; //应将self.view设置为翻转对象 [UIView transitio ...
- iOS对象序列化
系统对象的归档我就不介绍了,这个不复杂,自己看一下就会了. 我在这里主要介绍自定义对象的归档. Sample.h文件 // // Sample.h // Serialization // // ...
- poj1837 dp
//Accepted 2176 KB 47 ms //杠杆平横的条件:sum(c[i]*sum(g[j]))=0 // 所有的hook到原点的距离乘它上面挂着的物体的重量和的和为0 //对于一个hoo ...
- 03-树2 Tree Traversals Again
这题是第二次做了,两次都不是独立完成,不过我发现我第一次参考的程序,也是参考老师(陈越)的范例做出来的.我对老师给的做了小幅修改,因为我不想有全局变量的的存在,所以我多传了三个参数进去.正序遍历每次都 ...
- Be Careful With BuildConfig.DEBUG
Be Careful With BuildConfig.DEBUG http://www.digipom.com/be-careful-with-buildconfig-debug/
- 官方文档学习之《start developing iOS apps(swift)》
1. let 关键字是用来定义常量的,任何类型的常量都可以进行定义:例如:定义字符串 let constantValue1 = "this is a string",也可以定义数 ...
- 开源软件项目管理系统招设计/开发。。。。。Zend Framework2架构 svn://735.ikwb.com/pms
开源软件项目管理系统招设计/开发.....Zend Framework2架构svn://735.ikwb.com/pms
- java作业7
(1)阅读以下代码(CatchWho.java),写出程序运行结果: (2)写出CatchWho2.java程序运行的结果 (3)请先阅读 EmbedFinally.java示例,再运行它,观察其输出 ...
- Digit (数位DP)
一个正整数的价值就是把这个数的十进制写出来之后,最长的等差子串的长度. 求出在[l,r]范围内的数字的价值总和. (l<=r<=10^12) 记f[now,ml,l,d,pre,st,li ...
- jQuery:如何验证某个元素是否为空
[要求]:使用jQuery 如何验证某个元素是否为空 ♪ 答: <body> <div id="div1">aa</div> <inp ...