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不 ...
随机推荐
- hotplug\uevent机制(1)
hotplug就是热拔插,在linux里面,这个功能是通过class_device_create这个函数来实现的,那么我们来分析下这个函数: class_device_create(cls, NULL ...
- Java笔记(二十九)……网络编程
概述 网络模型 网络通讯的要素 ip地址:网络中设备的标识符 端口:用于标识同一台设备上不同的进程,有效端口:0~65535,其中0~1024是系统使用端口或者保留端口 TCP与UDP UDP特点: ...
- LA4329 Ping pong 树状数组
题意:一条大街上住着n个乒乓球爱好者,经常组织比赛切磋技术.每个人都有一个能力值a[i].每场比赛需要三个人:两名选手,一名裁判.他们有个奇怪的约定,裁判必须住在两名选手之间,而裁判的能力值也必须在两 ...
- javascript设计模式1
普通写法 function startAnimation(){ ... } function stopAnimation(){ ... } 对象类 /*Anim class*/ var Anim=fu ...
- POJ3641-Pseudoprime numbers(快速幂取模)
题目大意 判断一个数是否是伪素数 题解 赤果果的快速幂取模.... 代码: #include<iostream> #include<cmath> using namespace ...
- DATASNAP复杂中间件的一些处理方法
1.中间件需要连接SQL SERVER\ORACLE\MYSQL多种数据库,怎么办? [解决]:可以搞多种数据模块池对应多种数据库,一种数据模块池对应一种数据库 2.中间件业务对象多,在一个单元里面定 ...
- canvas createRadialGradient 用法
径向渐变,就是环形的渐变了,由圆心(或者是较小的同心圆)开始向外扩散渐变的效果,听着有些抽象,往下看图一下子就明白了.线性渐变指定了起点和终点,径向渐变则指定了开始的结束园的圆心和半径.这里使用cre ...
- 编写Word宏使选中的图片改变为固定宽度并保持纵横比
代码如下: Sub 改变图片宽度为12并设置灰色边框() ' ' 改变图片宽度为12并设置灰色边框 宏 ' ' ' Application.Run MacroName:="改变图片大 ...
- Android获取ip地址
原文:http://www.cnblogs.com/android100/p/Android-get-ip.html 1.使用WIFI 首先设置用户权限 <uses-permission and ...
- SecureCRT 终端仿真程序 v7.0.0.326 中文绿色便携破解版
http://wd.jb51.net:81/201205/tools/SecureCRT_jb51.rar Secure CRT是一款支持 SSH2.SSH1.Telnet.Telnet/SSH.Re ...