java新手笔记22 接口示例2
1.USB
package com.yfs.javase;
public interface USB {
//定义规范
public void read();
public void write();
}
2.UDisk读写
package com.yfs.javase;
public class UDisk implements USB {
@Override
public void read() {
System.out.println("从U盘读取数据...");
}
@Override
public void write() {
System.out.println("向U盘写入数据...");
}
}
3.只读
package com.yfs.javase;
public class OnlyRead implements USB {
@Override
public void read() {
System.out.println("读取数据...");
}
//空实现
@Override
public void write() {
//return;
}
}
4.Mp3读写
package com.yfs.javase;
public class Mp3 implements USB {
@Override
public void read() {
System.out.println("从Mp3读取数据...");
}
@Override
public void write() {
System.out.println("向Mp3写入数据...");
}
}
5.Computer
package com.yfs.javase;
public class Computer {
private USB usb;
//添加usb设备
public void addUsb(USB u) {
usb = u;
u.read();
u.write();
}
//删除usb设备
public void deleteUsb() {
if(usb != null) {
usb = null;
System.out.println("设备已删除...");
} else {
System.out.println("没有usb设备...");
}
}
}
6.测试
package com.yfs.javase;
public class Test {
public static void main(String[] args) {
Computer pc = new Computer();
pc.deleteUsb();
pc.addUsb(new Mp3());
pc.deleteUsb();
pc.addUsb(new UDisk());
pc.deleteUsb();
}
}
7.内部类
package com.yfs.javase;
public class OutClass {
private int a = 10;
private void privateMethod() {
}
public void method1() {
System.out.println("call method1()...");
//创建内部类对象
InnerClass inn = new InnerClass();
inn.iMethod1();
}
public void method2() {
System.out.println("call method2() ....");
}
//内部类 为外部类提供服务
class InnerClass {
public void iMethod1() {
System.out.println("inner method()");
//外部类的属性方法 当自己的使用
method2();
System.out.println("a = " + a );
privateMethod();
}
}
}
8.方法中声明类
package com.yfs.javase;
public class OutMethodClass {
public void method() {
//方法中声明类 只能在方法中使用
class Inner {
public void innMe() {
System.out.println("call InnMe()...");
}
}
Inner inn = new Inner();
inn.innMe();
}
public void method2() {
//Inner inn = new Inner();
}
}
9.测试内部类
package com.yfs.javase;
public class Test1 {
public static void main(String[] args) {
OutClass out = new OutClass();
out.method1();
//InnerClass inn = new InnerClass();
}
}
10.letter模板
package com.yfs.javase;
//信模板
public abstract class Templater { public abstract String toName() ;
public abstract String fromName();
public abstract String getContent(); public void show() {
System.out.println("尊敬的" + toName());
System.out.println("\t您好!");
System.out.println("\t\t" + getContent());
System.out.println("\t\t\t 此致 \n\t\t\t\t 敬礼" );
System.out.println("\t\t\t\t" + fromName());
System.out.println("\t\t\t\t 2015.7.25" );
} }
11.模板测试( 匿名类)
package com.yfs.javase.letter;
import com.yfs.javase.Person;
public class LetterTest {
public static void main(String[] args) {
Person p1 = new Person("张三");
p1.speak();
// 匿名类
new Person("李四").speak();
//创建对象 实现抽象方法 匿名类
new Templater() {
@Override
public String toName() {
return "领导";
}
@Override
public String fromName() {
return "员工";
}
@Override
public String getContent() {
return "涨点工资吧...";
}
}.show();
}
}
java新手笔记22 接口示例2的更多相关文章
- java新手笔记21 接口
1.接口 package com.yfs.javase; public interface IDemo1 {//interface 接口 public /*abstract*/ void method ...
- JAVA自学笔记22
JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...
- Java学习笔记22(List接口)
List接口继承自Collection接口,自身具有三大特点: 1.有序集合:存入和取出的顺序一致: 2.此接口的用户可以对每个元素插入位置进行精确控制:可以通过索引操作元素 3.可以存储重复元素 L ...
- Java 学习笔记(7)——接口与多态
上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是J ...
- java新手笔记9 类的封装示例
1.bank类 package com.yfs.javase; //类封装 public class BankCard { //属性 int balance;//默认0 实例变量 分配给每个对象一个 ...
- java新手笔记14 类继承示例
1.Person package com.yfs.javase; public class Person { private String name; private int age; private ...
- java新手笔记6 示例for
1.计算天数 /*给定一个年月日,计算是一年的第几天 (如输入:2 15 结果:第46天) */ public class Demo1 { public static void main(String ...
- java新手笔记32 jdk5新特性
1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...
- Java学习笔记_22_Set接口的实现类
22.Set接口的实现类: Set接口存放的元素是无序的且不包括反复元素. 1>实现类HashSet: HashSet类依据元素的哈希码进行存放,取出时也能够依据哈希码高速找到.HashSet不 ...
随机推荐
- leecode 树的平衡判定 java
以前写过c++版本的,感觉java写的好舒心啊/** * Definition for binary tree * public class TreeNode { * int val; * TreeN ...
- C程序设计 习题之1-20 detab
码农一定是最需要动手实操的行业之一.有一句话叫,好记性不如烂笔头,牵强附会引申到这里,变成看书百遍,不如码字运行一遍.是不是有那么一点味道?哈哈! 这几天看的<C程序设计>,看完每个章节还 ...
- 如何禁止掉SharePoint页面个性化(网站操作-编辑页面)
使用SharePoint Designer打开,或者创建一个新的Master Page,找到SPWebPartManager控件,如下所示,修改它的属性“Personalization-Enabled ...
- Storm系列(五)架构分析之Nimbus启动过程
启动流程图 mk-assignments 功能:对当前集群中所有Topology进行新一轮的任务调度. 实现源码路径: \apache-storm-0.9.4\storm-core\src\clj ...
- 【Java基础】增强for循环要注意陷阱
什么是增强for循环 增强for循环是一种简单模式的for循环,为了方便数组和集合的遍历而存在. int[] arr = new int[]{1, 2, 3, 4, 5, 6}; for (int a ...
- Jquery zTree的使用
<%@ page language="java" pageEncoding="utf-8"%><%@taglib prefix="s ...
- TDD中的迭代
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:TDD中的迭代.
- springmvc + spring + mybatis + maven整合配置文件
源码下载地址:http://download.csdn.net/detail/a757956132/9353345 src/main/java sy controller dao model serv ...
- Android应用换肤总结
换肤,我们都很熟悉,像XP的主题,塞班的主题.看过国外的一些技术博客,就会发现国内和国外对软件的,或者说移动开发的软件的需求的不同.国外用户注重社交.邮件等功能,国内用户则重视音乐.小说.皮肤等功能, ...
- Recommended add-ons/plugins for Microsoft Visual Studio
http://stackoverflow.com/questions/2767/recommended-add-ons-plugins-for-microsoft-visual-studio NUGe ...