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();
	}

}
时间: 2024-10-12 04:38:15

java新手笔记22 接口示例2的相关文章

java新手笔记21 接口

1.接口 package com.yfs.javase; public interface IDemo1 {//interface 接口 public /*abstract*/ void method1();//默认抽象方法 public } class Child1 implements IDemo1 { @Override public void method1() { // 实现接口的方法 System.out.println("call method1()"); } } 2.接

Java学习笔记之接口

一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(String msg); } 定义接口使用关键字interface 修饰符interface前面的public可以省略,如果省略,则采用默认访问控制,即只有在相同包结构的代码才可以访问此接口 接口不可以有构造方法(区别于类中的构造方法) 接口里面的所有成员,包括常量.方法等都是public访问权限,所以在

Java学习笔记_23_List接口实现类

23.List接口实现类: List接口继承了Collection接口,它是一个允许存在重复项的有序集合. 1>实现类ArrayList: ArrayList类支持可随需要而增长的动态数组.数组列表以一个原大小被创建,当超过了它的大小, 类集自动增大,当对象被删除后,数组就可以缩小. 优点:ArrayList类对于使用索引取出元素用较高的效率,他可以用索引快速定位对象. 缺点:ArrayList类对于元素的删除或插入速度较慢. 构造方法: · ArrayList(): 构造一个初始容量为10的空

Java学习笔记_21_Collection接口

21.Collection接口: 1>容器类的添加.删除: · add(Object o) :将对象添加到集合. · Remove(Object o) :删除集合中与o相匹配的对象. 2>容器中类的查询: · Size(): 返回集合中元素的个数. · isEmpty(): 判断集合中是否包含元素. · contains(Object o): 判断集合中是否包含指定元素. · iterator(): 返回集合的一个迭代器,用来访问该集合的元素. · contains(Collection c)

Java学习笔记_24_Map接口

24.Map接口: Map接口定义了存储"键(key)-值(value)映射对"的方法,Map中不能有重复的"键", Map实现类中储存的"键-值"映射对是通过键来唯一标识的,Map底层的"键"使用Set来存放的, 所以Map中的映射对的"键"对应的类必须重写hashCode()和equals()方法, 常用String作为Map的"键".  Map的添加.删除操作: · Object 

java新手笔记14 类继承示例

1.Person package com.yfs.javase; public class Person { private String name; private int age; private char sex; private void privateMehtod() { System.out.println("call privateMehtod()..."); } public Person() { //System.out.println("创建Perosn对

Java学习笔记_22_Set接口的实现类

22.Set接口的实现类: Set接口存放的元素是无序的且不包括反复元素. 1>实现类HashSet: HashSet类依据元素的哈希码进行存放,取出时也能够依据哈希码高速找到.HashSet不保存元素的加入的顺序. 样例: import java.util.HashSet; import java.util.Iterator; public class Student { public static void main(String[] args) { HashSet<String>

Java学习笔记22

Java集合类是一种特别有用的工具类,可以用于存储数量不等的多个对象,并可以实现常用的数据结构,如:栈. 队列等.除此之外,Java集合类还可用于保存具有映射关系的关联数组.Java集合大致可分为Set.List和Map三种 状态,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map代表具有映射关系的集合. Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又 包含了一些子接口或实现类.

java新手笔记9

1.bank类 package com.yfs.javase; //类封装 public class BankCard { //属性 int balance;//默认0 实例变量 分配给每个对象一个 //String name; // 方法 存钱 public void saveMoney(int money) { if(money < 0) { System.out.println("非法操作..."); return; } System.out.println("向