学习过程中经常搞不清匿名类&匿名对象怎么用,今天就把常用的方式总结一遍。

1.创建了非匿名实现类的非匿名对象
 //定义USB接口
interface USB{
void inputInofo();
void outputInfo();
}
//USB接口的实现类
class Computer implements USB{ public void inputInofo() {
System.out.println("MyComputer输入信息[^L^]。。。。。。");
} public void outputInfo() {
System.out.println("MyComputer输出信息[^_^]。。。。。。");
}
} public class mainTest {
@Test
public void show(){
//1.创建了非匿名实现类的非匿名对象(有实现类名,有对象名)
Computer computer = new Computer(); // ==> USB usbImpl = new Computer();
streamData(computer);
} public void streamData(USB usbImpl){
usbImpl.inputInofo();
usbImpl.outputInfo();
}
}
2.创建了非匿名实现类的匿名对象
 //定义USB接口
interface USB{
void inputInofo();
void outputInfo();
}
//USB接口的实现类
class Computer implements USB{ public void inputInofo() {
System.out.println("MyComputer输入信息[^L^]。。。。。。");
} public void outputInfo() {
System.out.println("MyComputer输出信息[^_^]。。。。。。");
}
} public class mainTest {
@Test
public void show(){
//2.创建了非匿名实现类的匿名对象(有实现类名,没有对象名),通常作为参数,不用定义变量名了
streamData(new Computer());
} public void streamData(USB usbImpl){
usbImpl.inputInofo();
usbImpl.outputInfo();
}
}
3.创建了匿名实现类的非匿名对象
 //定义USB接口
interface USB{
void inputInofo();
void outputInfo();
}
//USB接口的实现类
class Computer implements USB{ public void inputInofo() {
System.out.println("MyComputer输入信息[^L^]。。。。。。");
} public void outputInfo() {
System.out.println("MyComputer输出信息[^_^]。。。。。。");
}
} public class mainTest {
@Test
public void show(){
//3.创建了匿名实现类的非匿名对象(没有实现类名,有对象名)
USB usbImpl = new USB() {
public void inputInofo() {
System.out.println("[匿名实现类,非匿名对象]输入。。。。");
} public void outputInfo() {
System.out.println("[匿名实现类,非匿名对象]输出。。。。");
}
}; streamData(usbImpl);
} public void streamData(USB usbImpl){
usbImpl.inputInofo();
usbImpl.outputInfo();
}
}
4.创建了匿名实现类的匿名对象
 //定义USB接口
interface USB{
void inputInofo();
void outputInfo();
}
//USB接口的实现类
class Computer implements USB{ public void inputInofo() {
System.out.println("MyComputer输入信息[^L^]。。。。。。");
} public void outputInfo() {
System.out.println("MyComputer输出信息[^_^]。。。。。。");
}
} public class mainTest {
@Test
public void show(){
//4.创建了匿名实现类的匿名对象(没有实现类名,没有对象名),通常作为参数,不用定义变量名了
streamData(
new USB()
{
public void inputInofo() {
System.out.println("[匿名实现类,匿名对象]输入。。。。");
} public void outputInfo() {
System.out.println("[匿名实现类,匿名对象]输出。。。。");
}
}
);
} public void streamData(USB usbImpl){
usbImpl.inputInofo();
usbImpl.outputInfo();
}
}

匿名实现类&匿名对象的更多相关文章

  1. 将实体类/匿名对象转换为SqlParameter列表

    每次操作数据库参数化实在是太麻烦了,于是自己瞎琢磨,琢磨出下面扩展方式,能力有限,还有不足之处,请多多指教. /// <summary> /// <remarks> /// & ...

  2. Java面向对象(概述,构造函数,类与对象的关系,this关键字,成员、局部),匿名对象的调用,构造代码块(5)

    Java面向对象(概述,构造函数,类与对象的关系,this关键字,成员.局部),匿名对象的帝爱用,构造代码块(5)

  3. C#语法糖之第三篇: 匿名类 & 匿名方法

    今天时间有点早,所以上来在写一篇文章吧,继续上一篇的文章,在我们平时编程过程中有没有遇到过这样的一个情景,你定义的类只是用来封装一些相关的数据,但并不需要相关联的方法.事件和其他自定义的功能.同时,这 ...

  4. 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...

  5. 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类

    ---------- android培训.java培训.期待与您交流! ---------- 一.面向对象概述 1.面向对象:是一个很抽象的概念,它相对面向过程而言,是一种程序设计的思想. 2.面向对 ...

  6. 【PHP】PHP中的类与对象

    面向对象并不是PHP的关键,但PHP确实能很好的支持面向对象编程,而且类与对象也成为了PHP5的核心组成部分.PHP的面向对象特性让构建大型的复制应用成为可能,有了类与对象,就自然产生了各种编程范式和 ...

  7. JavaSE——面向对象与面向过程、类与对象、(属性、方法、构造器)等

    一:面向对象与面向过程 二者都是一种思想,面向对象是相对于面向过程而言的. 面向过程: 1.面向过程思想强调的是过程(动作). 2.在面向过程的开发中,其实就是面向着具体的每一个步骤和过程,把每一个步 ...

  8. JS创建类和对象

    JavaScript 创建类/对象的几种方式 在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活 ...

  9. OC1_类与对象

    // // main.m // OC1_类与对象 // // Created by zhangxueming on 15/6/9. // Copyright (c) 2015年 zhangxuemin ...

随机推荐

  1. .NET Core HttpClientFactory+Consul实现服务发现

    前言 上篇文章.NET Core HttpClient+Consul实现服务发现提到过,HttpClient存在套接字延迟释放的问题,高并发情况导致端口号被耗尽引起服务器拒绝服务的问题.好在微软意识到 ...

  2. 【python 爬虫】fake-useragent Maximum amount of retries reached解决方案

    前言 在用fake-useragent的时候发生报错,fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reach ...

  3. IO流基础,创建File对象与方法是用

    1.io流主要用途读取本地文件或服务器文件,进行本地或者服务器开呗工作 构造函数   绝对路径够构造方法:    File f = new File("D:\\test\\a.txt&quo ...

  4. js中 addEventListener 和removeEventListener

    js中添加事件监听本来是非常常见的事情,但是去除监听一般很少去干,最近项目中需要监听页面显示或者隐藏 代码如下 document.addEventListener(visibilitychange', ...

  5. pyinstaller打包pyqt5,从入坑到填坑,详解

    以上省略pyinstaller安装步骤,直入主题.先分享我的心路历程. 1.pyinstaller -F -i 1.ico UI_Main.py (先在CMD中 cd到 py文件对应的路径) 第一步打 ...

  6. samba修复

    在之前有讲过一个samba无法连接的情况,这次碰到的是samba依赖被弄坏后还原. 注:可能不是很详细,因为时间原因,可能不够完整或缺少记录和截图. 作为记录和参考. 问题:因为对ubuntu系统不太 ...

  7. [COCOS2DX-LUA]0-001.利用ClippingNode实现放大镜功能

    用过Iphone的都知道,Iphone在定位光标位置的时候会把内容进行放大,这样我们就能很快的把光标移动到指定的位置.那么在我们的Cocos2dX的游戏中,怎么可以实现这种功能呢.起先我就是想起了Ip ...

  8. cors跨越深度刨析

    解决跨域的方式JSOP,和CORS JSONP不做介绍了. CORS跨域: 参考阮一峰http://www.ruanyifeng.com/blog/2016/04/cors.html 官方:https ...

  9. 【项目】关于TeenCode第二代评测机的技术分析

    晚上睡不着觉,仔细研读了洛谷的第四代评测机技术分析后,突然发现自己写的TeenCode评测机竟然有这么多地方可以改进,这不得不让我诞生了实现第二代TeenCode评测机的想法.[第一代评测机挺可怜的, ...

  10. 【Linux】CentOS7中使用mysql,查询结果显示中文乱码的解决办法

    1.登录mysql mysql -u root -p 2.查看mysql字符集 mysql> show variables like 'chara%'; mysql> show varia ...