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

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. 【Java】手把手理解CAS实现原理

    先来看看概念,[CAS] 全称“CompareAndSwap”,中文翻译即“比较并替换”. 定义:CAS操作包含三个操作数 —— 内存位置(V),期望值(A),和新值(B). 如果内存位置的值与期望值 ...

  2. mac+mamp安装composer

    打开终端 php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"   安 ...

  3. 学会使用Hdlbits网页版Verilog代码仿真验证平台

    给大家推荐一款网页版的 Verilog代码编辑仿真验证平台,这个平台是国外的一家开源FPGA学习网站,通过“https://hdlbits.01xz.net/wiki/Main_Page” 地址链接进 ...

  4. Kubernetes实战 - 从零开始搭建微服务 - 1.5 提高可用性-发布多节点的Node/Express网络应用程序

    1.5 提高可用性-发布多节点的Node/Express网络应用程序 Kubernetes实战 - 从零开始搭建微服务 前言 在上一篇文章中,已经学习了如何简单地开发一个单层网络应用.[Kuberne ...

  5. IDEA奇淫小技巧

    IDEA是目前市场上最好用的IDE,我说的! 前几年eclipse在市场上非常流行,因此大多数人都习惯了eclipse的一些快捷键.近年来,随着IDEA的兴起,很多人都放弃了exlipse,进而选择了 ...

  6. ATX-UI自动化环境搭建

    基础环境准备(以下都是在Mac机上搭建的) 1.android sdk安装&配置 很完美的一个资源下载网:tools.android-studio.org,下载所需的包(我下的zip包直接解压 ...

  7. Kubernetes基本概念与架构

    Kubernetes,面向云原生应用的新“云平台” Kubernetes:以google Brog为原型 Kubernetes的成长历程: l  2014年,Kubernetes正式由google开源 ...

  8. nodejs 开发服务端 部署到 iis 服务器环境 -- iisnode 安装问题解决记录

    开发环境 nodejs: v10.15.3 windows: 10 iis: 10 需求: 用Nodejs开发了服务端,要部署到IIS 需要在IIS服务器上安装iisnode,结果遇到问题:安装不上 ...

  9. [Python基础]009.os模块(1)

    os模块(1) 介绍 os 常量 文件目录操作 文件属性操作 遍历文件夹 介绍 os模块是系统服务应用程序接口,是Python最常用的模块之一. os模块包含了对文件和文件夹的操作,操作系统相关的操作 ...

  10. & Google前沿的AMP技术

    首先要知道什么是AMP以至于为什么要选择AMP? AMP他并不是一门新技术,他只是一种能够让页面更快打开的一种办法.之所以用他是因为AMP能够带来SEO排名优化.另外Google搜索结果对AMP页面有 ...