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不 ...
随机推荐
- 归并排序 求逆序数 链表的归并排序 多线程归并排序 java
import java.util.Scanner; public class Main { private static int count=0; public static void mergeso ...
- Apriori算法实例----Weka,R, Using Weka in my javacode
学习数据挖掘工具中,下面使用4种工具来对同一个数据集进行研究. 数据描述:下面这些数据是15个同学选修课程情况,在课程大纲中共有10门课程供学生选择,下面给出具体的选课情况,以ARFF数据文件保存,名 ...
- HW4.39
public class Solution { public static void main(String[] args) { double sum; double baseSalary = 500 ...
- The Basics
“Swift is a new programming language for iOS and OS X app development. Nonetheless, many parts of Sw ...
- JavaScript constructors, prototypes, and the `new` keyword
Are you baffled(阻碍:使迷惑) by the new operator in JavaScript? Wonder what the difference between a func ...
- Hibernate一张图
- 关于.net的一些基础知识(二)
索引器是什么?有什么作用?索引器允许类的实例以访问数组的形式来访问对象里面的属性.如我们经常可以看到类似于dr[“name”]=”test”,或者说以config[“connectString”]来获 ...
- PowerDesigner建数据库模型增加自定义扩展属性
PowerDesigner自7.x新增加一个特性,就是允许用户通过扩展模型的方式扩展模型的属性,但到底怎用一直搞不清楚.今天和同事商量准备直接在程序的Metadata信息实现上直接使用pdm时,我们需 ...
- KVC 和KVO浅谈
一.KVC:Key-Value -Coding :直译为:键-值-代码:即:对键值进行改变的代码方法 该方法是OC(Object-C)为我们提供的一个不通过初始化方法而直接改变对象实例变量值的一种 ...
- Chrome 插件vimium快捷键大全
vimium是一款让你在chrome浏览器能方便地使用键盘操作浏览器的插件. 转自:http://www.cnblogs.com/liuyangnuts/p/3474905.html 在当前页中导航 ...