【028】接口

interface定义,方法是抽象方法,权限均为public
*还记得抽象的特性吗?不能生成对象,但是能够被继承,能被复写
接口的实现类,其实就是继承类
如:
usb.java
interface usb{public void read();public void write();
}
usbPhone.java
class usbPhone implements usb{public void read(){System.out.println("usbPhone reading");}public void write(){System.out.println("usbPhone write");}
}
test.java
class test{public static void main(String args []){usbPhone usbp1 = new usbPhone();//向上转型,将子类对象赋值给父类引用usb u1 = usbp1;u1.read();u1.write();}
}

Tips:一个类可以实现多个接口(也就是继承中的特殊情况,子类有多个父类)
如:
wifi.java
interface wifi{public void open();public void close();
}

usb.java
interface usb{public void read();public void write();
}

Phone.java
class Phone implements usb,wifi{public void read(){System.out.println("Phone usb reading");}public void write(){System.out.println("Phone usb write");}public void open(){System.out.println("phone wifi open");}public void close(){System.out.println("phone wifi close");}
}

test.java
class Phone implements usb,wifi{public void read(){System.out.println("Phone usb reading");}public void write(){System.out.println("Phone usb write");}public void open(){System.out.println("phone wifi open");}public void close(){System.out.println("phone wifi close");}
}

Tips:一个接口也可以继承多个接口
interface A{}
interface B{}
interface C implements A,B{}
这里C继承了A和B

【029】接口的应用

呃,一个工厂模式的内容,有相关基础的不用看了ORZ。。

【030】

囧,集数混乱了,见笔记【027】

【31】java中的异常

关键字throw和throws
1:throw
User.java
class User{private int age;void setAge(int age){if(age < 0){//uncheck exceptionRuntimeException r = new RuntimeException("年龄不能是负数");throw r;}this.age = age;}
}

test.java
class test{public static void main(String args []){User user = new User();user.setAge(-20);}
}

2、throws
User.java
class User{private int age;void setAge(int age) throws Exception{//throws Exception 声明一个异常,但是不处理if(age < 0){//uncheck exceptionException r = new Exception("年龄不能是负数");throw r;}this.age = age;}
}

test.java
class test{public static void main(String args []){User user = new User();try{user.setAge(-20);}catch(Exception c){//对异常进行处理System.out.println(c);}}
}

Tips:
1、RuntimeException是运行时的异常,其他都是编译时的异常,不过不进行声明或者捕捉均会报错
2、对于异常的处理,需要一定的经验积累,现在是分成两种,①是在函数内进行异常处理,②是函数抛出异常,调用函数的方法进行异常处理

【032】java的I/O流

I/O操作的目的:从数据源中读取数据,将数据写入目的数据源中。
I/O核心类:
InputStream          OutputStream   是抽象类,是所有字符流的父类
↓                          ↓
FileInputStream     FileOutputStream  字节流
InputStream核心方法:
int read(byte [] b, int off, int len)     //从b字节数组的第off的字节开始,读取len个,返回值为len
OutputStream核心方法
void write(byte [] b, int off, int len)     //基本同上,off从0开始,和数组下标保持一致
如:
import java.io.*;     //1、导入类

class test{public static void main(String args []){//2、声明输入流引用FileInputStream fis = null;//声明输出流引用FileOutputStream fos = null;try{//3、生成代表输入和输出流对象fis = new FileInputStream("d:/android/src/from.txt");fos = new FileOutputStream("d:/android/src/to.txt");//4、生成字节数组byte [] buffer = new byte[10];//5、调用输入流对象的read方法,返回值为读取字节长度int temp = fis.read(buffer,0,buffer.length);//放入fosfos.write(buffer,0,temp);for(int i = 0; i < buffer.length; i++){System.out.println(buffer[i]);}}catch(Exception e){System.out.println(e);}}
}

结果:字符转换为ascii码,而from.txt中的内容已经被复写到to.txt中

【033】I/O流继续

1、大文件的读写方法以及关闭输入输出流的方法
import java.io.*;
class test{public static void main(String args []){//2、声明输入流引用FileInputStream fis = null;//声明输出流引用FileOutputStream fos = null;try{//3、生成代表输入和输出流对象fis = new FileInputStream("d:/android/src/from.txt");fos = new FileOutputStream("d:/android/src/to.txt");//4、生成字节数组byte [] buffer = new byte[5];//while(true){int temp = fis.read(buffer,0,buffer.length);if(temp == -1){break;}else{fos.write(buffer,0,buffer.length);}}}catch(Exception e){System.out.println(e);}finally{try{fis.close();fos.close();}catch(Exception e){System.out.println(e);}}}
}

2、字符流的使用方法
读写文件时,以字符为基础
Reader             Writer   字符流的父类
↓                    ↓
FileReader     FileWriter
FileReader核心方法
int read(char [] c, int off, int len)
FileWriter核心方法
void write(char [] c, int off, int len)
*理解参见字节流
例如:
import java.io.*;class test{public static void main(String args []){FileReader fr = null;FileWriter fw = null;try{fr = new FileReader("d:/android/src/from.txt");fw = new FileWriter("d:/android/src/to.txt");char [] buffer= new char[13];int tmep = fr.read(buffer,0,buffer.length);fw.write(buffer,0,temp);for(int i = 0;i<buffer.length;i++){System.out.println(buffer[i]);}}catch(Exception e){System.out.println(e);}finally{try{fr.close();fw.close();}catch(Exception e){System.out.println(e);}}}
}

结果:输出from.txt的内容,以及三个空字符(无内容),from.txt内容复写至to.txt

【034】I/O流继续~

1、处理流实例
BufferedReader(字符流、输入流、处理流)
核心方法:
public String readLine() throwsIOException:以行来处理数据
如:
import java.io.*;
class test{public static void main(String args []){FileReader fr = null;BufferedReader br = null;try{fr = new FileReader("d:/android/src/from.txt");br = new BufferedReader(fr);String line = null;while(true){line = br.readLine();if(line == null){break;}System.out.println(line);}}catch(Exception e){System.out.println(e);}finally{try{fr.close();br.close();}catch(Exception e){System.out.println(e);}}}
}
结果:
Tips:
使用一个处理流,必须要有一个节点流
2、Decorator模式
装饰者模式,不细说。。。主要在于理解。。。

[笔记][java 4 android] [028~034]接口、异常和I/O流相关推荐

  1. Java自学笔记——Java面向对象——04.抽象类、接口、内部类

    Java 面向对象各节 Java自学笔记--Java面向对象--01.回顾方法 Java自学笔记--Java面向对象--02.构造器.类和对象 Java自学笔记--Java面向对象--03.封装.继承 ...

  2. 【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api

    Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...

  3. Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25

    Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...

  4. Java学习笔记--Java中必记常见异常

    JAVA常见异常 Java.io.NullPointerException null 空的,不存在的 NullPointer 空指针 空指针异常,该异常出现在我们操作某个对象的属性或方法时,如果该对象 ...

  5. 【深入理解Java虚拟机学习笔记】第二章 Java 内存区域与内存溢出异常

    最近想好好复习一下java虚拟机,我想通过深读 [理解Java虚拟机 jvm 高级特性与最佳实践] (作者 周志明) 并且通过写一些博客总结来将该书读薄读透,这里文章内容仅仅是个人阅读后简短总结,加强 ...

  6. 【Java】 第六章 接口、lambda 表达式与内部类 Java核心技术卷1基础知识原书第10版 读书笔记

    第六章 接口.lambda表达式与内部类 6. 接口.lambda 表达式与内部类 6.1 接口 6.1.1 接口概念 6.1.2 接口的特性 6.1.3 接口与抽象类 6.1.4 静态方法 6.1. ...

  7. Android 11安装apk异常java.lang.SecurityException: Permission Denial:

    安装apk时出现There was a problem parsing the package 提示信息从抓log信息如下: 03-21 00:58:40.010   926  1129 W Acti ...

  8. java学习笔记03-封装 继承 抽象类 多态 接口

    封装:在类的属性设置时 使用private将数据隐藏.不允许使用a.xingming来调用数据,可以设置get和set函数来对数据进行查看和修改(在其中添加if的判断语句来控制该参数的修改权限和读取权 ...

  9. Java开源Android开源项目

    FBReaderJ FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb.ePub和fb2.此外还支持直接读取zip.tar和gzip等压缩文档. 更多FBRea ...

最新文章

  1. 英国JIC院士3.8万英镑招博后-植物代谢物与微生物组-截止6月27日
  2. C++ return ,break,continue,关键字
  3. 设计模式六大原则之白话讲解
  4. springboot 多数据源mybatis的两种整合方法
  5. winform button设计(一)
  6. 如何在手机上编码python_如何在Python中进行热编码?
  7. 限时免费下载《程序员面试宝典》.pdf
  8. Qt连接达梦数据库(DM7)
  9. c语言处理系统步骤,c语言源代码【处理步骤】
  10. SDEWAN CNF for OpenNESS
  11. 【转】巧舟的逆转裁判开发手记~
  12. 职中选什么专业好_职中选什么专业最有前途
  13. 嵌入式网络的基础知识 -- 数据包的组装、拆解、各头部格式
  14. Java String知识复习及补充和包装类
  15. Q版京剧脸谱来喽——小生
  16. 观古之四大名著《水浒传》有感
  17. 机器学习(周志华)学习笔记(一)
  18. arnold如何设置鱼眼相机_关于C4D阿诺德的摄像机参数详解
  19. v-show和v-if的区别 display:none和visible: hidden的区别
  20. python绘制五彩泡泡_《五彩的泡泡》教案设计

热门文章

  1. 51单片机矩阵键盘——数码管显示
  2. 0033:乐队的夏天
  3. tensorflow入门实战----VGG16完成猫狗分类
  4. 使用 vue-lic3 创建 vue 项目
  5. html中调用广告居中,修改CSS让AdSense广告内容居中
  6. 有没有哪个趋势指标,更好使?
  7. Windows系统安装之 BIOS篇(AMI BIOS)
  8. 第十二届蓝桥杯大赛软件赛省赛第二场题解
  9. echarts map地图geojson/json格式的简单使用
  10. 一天 用户旅程_我完成100天代码的旅程