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不 ...
随机推荐
- Weka 自动优化参数
import weka.core.*; import weka.classifiers.*; import weka.classifiers.meta.*; import weka.classifie ...
- 恢复oracle中误删除drop掉的表
查看回收站中表 select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recycl ...
- 第一个php网页
<?php date_default_timezone_set('PRC'); if($_POST[ok]) { //echo "记录"; //echo "here ...
- Js/Jquery- Base64和UrlEncode编码解码
最近几天遇到一些URL参数明文显示的问题,因为是明文显示,容易让人通过改变参数查看到他没有权限看到内容. 一开始我的做法是自定义了规则,然后原始的那种URL编码.可是URL编译后效果不理想,他无法编译 ...
- 多点触控之MotionEvent.ACTION_MASK作用
ACTION_MASK在Android中是应用于多点触摸操作,字面上的意思大概是动作掩码的意思吧. 在onTouchEvent(MotionEvent event)中,使用switch (event. ...
- VC++ 统计文件夹下面的当日和本月生成的图片
void GetCapNum(int * todayNum, int * mouthNum) { string path = ".\\res";//路径位于程序运行目录下的r ...
- Ubuntu下开启root登陆
亲手安装过Ubuntu的童鞋都知道,默认安装只会添加一个普通用户名和密码,而超级用户权限则是利用sudo命令来执行.在Ubuntu下使用root登陆或者在shell中用su命令切换到root时会提示错 ...
- 安装完Ubuntu 14.04要做的九件事
www.linuxidc.com/Linux/2014-04/100411.htm 1.看看有哪些新特性 安装完之后的第一件事肯定是看看Ubuntu 14.04有哪些新的特性. Ubuntu 14.0 ...
- cardslib
https://github.com/gabrielemariotti/cardslib
- zepto的scrollTo,实现锚点跳转
实现功能:点击右侧字母A,实现锚点跳转功能: 有同学可能说可以直接用锚点跳转实现,是的,锚点跳转可以实现这个功能,但是有一个问题,点击跳转后,再点击返回,返回的是上次跳转的结果,具体的原理就不用多说了 ...