AsllのJava学习笔记 2

一、接口的应用(Interface)

1、模拟计算机USB接口程序设计

  通常人们使用的计算机上都有USB接口,鼠标、键盘、麦克风等都可以连接到USB接口中使用。在计算机启动时,这些设备也随之启动;当计算机关闭时,这些设备也会随之关闭。鼠标、键盘、麦克风等USB接口设备都启动后,计算机才开机成功;当这些设备都关闭后,计算机才关机成功。

  1. USB接口,定义了设备的启动和关闭功能(USB.java)
	package cn.edu.cqust.usb;
	public interface USB {
		void turnOn();//启动
		void turnOff();//关闭
}
  1. 鼠标类,实现了USB接口(Mouse.java)
	package cn.edu.cqust.usb;
	public class Mouse implements USB {
		@Override
		public void turnOn() {
			System.out.println("鼠标启动了......");
		}
		@Override
		public void turnOff() {
			System.out.println("鼠标关闭了......");
		}
}
  1. 麦克风类,实现了USB接口(Mic.java)
	package cn.edu.cqust.usb;
	public class Mic implements USB {
	
		@Override
		public void turnOn() {
			System.out.println("麦克风启动了......");
		}
		@Override
		public void turnOff() {
			System.out.println("麦克风关闭了......");
		}
	}
  1. 键盘类,实现了USB接口(KeyBoard.java)
	package cn.edu.cqust.usb;
	public class KeyBoard implements USB {
		@Override
		public void turnOn() {
			System.out.println("键盘启动了......");
		}
		@Override
		public void turnOff() {
			System.out.println("键盘关闭了......");
		}
	}
  1. 计算机类,拥有4个USB接口,具有添加USB设备、开机、关机的功能(Computer.java)
	package cn.edu.cqust.usb;
	public class Computer {
		private USB[] usbArr=new USB[4];
		//向计算机上连接一个USB设备
		public void add(USB usb){
			//遍历所有的插槽
			for(int i=0;i<usbArr.length;i++){
				//如果发现一个空的
				if(usbArr[i]==null){
					usbArr[i]=usb;
					break;
				}
			}
		}
		//计算的开机功能
		public void powerOn(){
			//遍历所有的插槽
			for(int i=0;i<usbArr.length;i++){
				//如果发现有设备
				if(usbArr[i]!=null){
					//将USB设备启动
					usbArr[i].turnOn();
				}
			}
			System.out.println("计算机开机成功!!!");
		}
		//计算的关机功能
			public void powerOff(){
				//遍历所有的插槽
				for(int i=0;i<usbArr.length;i++){
					//如果发现有设备
					if(usbArr[i]!=null){
						//将USB设备关闭
						usbArr[i].turnOn();
					}
				}
				System.out.println("计算机关机成功!!!");
			}
	}
  1. 运行类(测试类)(Test.java)
	package cn.edu.cqust.usb;
	public class Test {
		public static void main(String[] args) {
			//实例化计算机对象
			Computer computer=new Computer();
			//向计算机中添加鼠标、麦克风、键盘
			computer.add(new Mouse());
			computer.add(new Mic());
			computer.add(new KeyBoard());
			
			//启动计算机
			computer.powerOn();
			//关闭计算机
			computer.powerOff();
			
		}
	}

最终的执行结果:
在这里插入图片描述

二、IO的应用

1、文件的复制

将图片文件做一个备份,以防图片文件损坏。请采用三种不同的方式实现复制:
 (1)一个字节一个字节地依次复制
 (2)字节块复制
 (3)带缓冲的复制

  1. 一个字节一个字节地复制—Copy By Byte
	InputStream is = null;
	OutputStream os = null;
	try{
		is = new FileInputStream("路径分级用\\");
		os = new FileOutputStream("路径");
		int a = -1 ;
		while((a = is.read()) != -1){
			os.write(a);
		}catch(Exception e){
			e.printStackTrace();
		} finally{
			try{
				if(is != null)
				is.close();
				if(os != null)
				os.close();
				}catch (IOException e){
					e.printStackTrace();
				}
			}
	}
  1. 字节块复制—Copy By Byteblock
	InputStream is = null;
	OutputStream os = null;
	try{
		is = new FileInputStream("路径分级用\\");
		os = new FileOutputStream("路径");
		int a = -1 ;
		byte buffer[] = new byte[32]; //定义字节缓冲器
		while ((a = is.read(buffer)) != -1){
			os.write(buffer,0,a);    //读入的时候变动了
			os.flush();    //刷新缓冲区
		}catch(Exception e){
			e.printStackTrace();
		} finally{
			try{
				if(is != null)
				is.close();
				if(os != null)
				os.close();
				}catch (IOException e){
					e.printStackTrace();
				}
			}
	}
  1. 使用缓冲流 — Copy by Buffer
	InputStream is = null;
	OutputStream os = null;
	try{
		is = new FileInputStream("路径分级用\\");
		os = new FileOutputStream("路径");
		//实例化缓冲流对象
		bis = new BufferInputStream(is);
		bos = new BufferOutputStream(os);
		int a = -1 ;
		byte buffer[] = new byte[32]; //定义字节缓冲器
		while ((a = bis.read(buffer)) != -1){
			bos.write(buffer,0,a);    //读入的时候变动了
			bos.flush();    //刷新缓冲区
		}catch(Exception e){
			e.printStackTrace();
		} finally{
			try{
				if(is != null)
				is.close();
				if(os != null)
				os.close();
				}catch (IOException e){
					e.printStackTrace();
				}
			}
	}

最终结果展示:
在这里插入图片描述

三、线程的应用

四、JavaFx的应用(GUI界面)

五、socket的应用(网络编程)

基于Socket的即时通信

  编写程序,建立一个功能齐全的Socket通信,其工作过程包含四个基本的步骤:

  • 创建Socket;
  • 打开连接到Socket的输入/出流;
  • 按照一定的协议对Socket进行读/写操作;
  • 关闭Socket。
  • 循环读取
    在这里插入图片描述

五、JDBC编程(Java处理SQL)


解析:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值