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

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. 苏浪浪 201771010120 面向对象程序设计(Java)第13周

    /实验十三  图形界面事件处理技术 1.实验目的与要求 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作机制: (3) 掌握事件处理的基本编程模型: (4) 了解GUI界 ...

  2. PHP 面向对象的数据库操作

    一.面向对象 fetch_all() 抓取所有的结果行并且以关联数据,数值索引数组,或者两者皆有的方式返回结果集. fetch_array() 以一个关联数组,数值索引数组,或者两者皆有的方式抓取一行 ...

  3. DBCP连接池和事物

    工具类案例 public static final String DRIVER = "com.mysql.jdbc.Driver"; public static final Str ...

  4. 【JavaScript数据结构系列】06-双向链表DoublyLinkedList

    [JavaScript数据结构系列]06-双向链表DoublyLinkedList 码路工人 CoderMonkey 转载请注明作者与出处 1. 认识双向链表 不同于普通链表/单向链表,双向链表最突出 ...

  5. [PHP插件教程]003.PhpRedis

    PhpRedis 介绍 Mac安装步骤 安装Redis 安装PhpRedis 示例代码 介绍 Redis是一个高性能的key-value数据库. Redis提供了Java,C/C++,C#,PHP,J ...

  6. Java中的集合(三)继承Collection的Queue接口

    Java中的集合(三)继承Collection的Queue接口 一.Queue介绍 Queue接口继承自Collection接口,是Java中定义的一种队列数据结构,元素是有序的(按插入顺序排序),先 ...

  7. Bank5

    Account: package banking5; //账户 public class Account { protected double balance; public Account(doub ...

  8. 服务器开发 Ubuntu

    一.Ubuntu安装: 为什么用Ubuntu,作为服务器初学者开发,如果真的要买苹果系统电脑性价比不高,所以在window系统中安装Linux虚拟机是不二之选.为什么用Ubuntu不多说了,开始安装吧 ...

  9. 郭盛华:DNS新漏洞可使黑客可以发起大规模DDoS攻击

    近日,知名网络黑客安全专家.东方联盟创始人郭盛华微博披露了有关影响DNS协议的新缺陷的详细信息,该缺陷可被利用来发起放大的大规模分布式拒绝服务(DDoS)攻击,以击倒目标网站.该漏洞称为NXNSAtt ...

  10. 生成随机字符串 php

    /** +---------------------------------------------------------- * 生成随机字符串 +------------------------- ...