• 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("	您好!");
    		System.out.println("		" + getContent());
    		System.out.println("			 此致 
    				 敬礼" );
    		System.out.println("				" + fromName());
    		System.out.println("				  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();
    	}
    
    }
    
  • 相关阅读:
    EF6 Code First 模式更新数据库架构
    bootstrap-datepicker 插件修改为默认中文
    常用网络资源下载
    jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件
    AngularJS实现原理
    [个人翻译]GitHub指导文件(GitHub Guides[Hello World])
    年后跳槽如何准备?
    前端学数据库之子查询
    Ionic实战 自动升级APP(Android版)
    读书笔记:《HTML5开发手册》Web表单
  • 原文地址:https://www.cnblogs.com/feilongblog/p/4675912.html
Copyright © 2020-2023  润新知