匿名实现类&匿名对象
学习过程中经常搞不清匿名类&匿名对象怎么用,今天就把常用的方式总结一遍。
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();
}
}
匿名实现类&匿名对象的更多相关文章
- 将实体类/匿名对象转换为SqlParameter列表
每次操作数据库参数化实在是太麻烦了,于是自己瞎琢磨,琢磨出下面扩展方式,能力有限,还有不足之处,请多多指教. /// <summary> /// <remarks> /// & ...
- Java面向对象(概述,构造函数,类与对象的关系,this关键字,成员、局部),匿名对象的调用,构造代码块(5)
Java面向对象(概述,构造函数,类与对象的关系,this关键字,成员.局部),匿名对象的帝爱用,构造代码块(5)
- C#语法糖之第三篇: 匿名类 & 匿名方法
今天时间有点早,所以上来在写一篇文章吧,继续上一篇的文章,在我们平时编程过程中有没有遇到过这样的一个情景,你定义的类只是用来封装一些相关的数据,但并不需要相关联的方法.事件和其他自定义的功能.同时,这 ...
- 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...
- 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类
---------- android培训.java培训.期待与您交流! ---------- 一.面向对象概述 1.面向对象:是一个很抽象的概念,它相对面向过程而言,是一种程序设计的思想. 2.面向对 ...
- 【PHP】PHP中的类与对象
面向对象并不是PHP的关键,但PHP确实能很好的支持面向对象编程,而且类与对象也成为了PHP5的核心组成部分.PHP的面向对象特性让构建大型的复制应用成为可能,有了类与对象,就自然产生了各种编程范式和 ...
- JavaSE——面向对象与面向过程、类与对象、(属性、方法、构造器)等
一:面向对象与面向过程 二者都是一种思想,面向对象是相对于面向过程而言的. 面向过程: 1.面向过程思想强调的是过程(动作). 2.在面向过程的开发中,其实就是面向着具体的每一个步骤和过程,把每一个步 ...
- JS创建类和对象
JavaScript 创建类/对象的几种方式 在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活 ...
- OC1_类与对象
// // main.m // OC1_类与对象 // // Created by zhangxueming on 15/6/9. // Copyright (c) 2015年 zhangxuemin ...
随机推荐
- 哈理工新生赛 马拉车+贪心 最大密度子图 AC自动机+DP
J.Symmys Time Limit: 1000 MS Memory Limit: 262144 K Total Submit: 50 (13 users) Total Accepted: 2 (2 ...
- h5+ 开发分享功能
h5+ 开发微信.QQ分享功能 此处只做微信网页分享示例代码 方式一.JS+HTML+h5Plus 1.html代码 <div class="button" onclick= ...
- 一文讲透Modbus协议
前言 Modbus是一种串行通讯协议,是Modicon公司(现在的施耐德电气 Schneider Electric) 于1979年为使用可编程逻辑控制器(PLC)通信而发表.Modbus已经成为工业领 ...
- vue-cli中的index.html ,main.js , App.vue的关系
###发现不少小伙伴才刚开始接触到这个结构都被绕的迷糊,而发现很多人说的也不是那么准确,那么下面我来说一下是怎么回事### 1.首先我们来看看原生Vue中组件的写法, 我们按照vue-cli的结构按照 ...
- vue端口号被占用
今天在启动一个Vue项目的时候,遇到了一个问题. 得知是Vue项目端口号占用的问题. 解决方法: 换一个端口号. 在调用 npm run dev 的时候,实际上是在调用根目录下的 package ...
- Unity实现精灵资源动态加载
private Sprite LoadSourceSprite(string relativePath) { //把资源加载到内存中 UnityEngine.Objec ...
- shell判断语句
1.test命令 也可以用[ ]来表示 返回值为0时为true,返回值为1时为false. 例1:str1=aaa,str2=bbb 1)判断字符串是否为空(省略了-n选项,-n选项是不为空,-z ...
- 【图机器学习】cs224w Lecture 13 & 14 - 影响力最大化 & 爆发检测
目录 Influence Maximization Propagation Models Linear Threshold Model Independent Cascade Model Greedy ...
- RabbitMQ安装(centos7)
本文是作者原创,版权归作者所有.若要转载,请注明出处. 本文RabbitMQ版本为rabbitmq-server-3.7.17,erlang为erlang-22.0.7.请各位去官网查看版本匹配和下载 ...
- 15期day01编程与计算机硬件
一.编程: 1,编程语言:定义:让计算机能像人一样去工作执行某种命令的语音 重点:工作的思维逻辑 编程语言为翻译 简单逻辑汉语 小例子: 接收用户输入的用户名 接收用户输入的密码 判断用户输入的用户名 ...