java 3 接口与多态&输入输出流

接口 中的所有方法都是方法 抽象
使用接口实现多继承

类型的装换

1054453-20170908094458851-1610134906.png
数据成员就变成了static 和 final

1054453-20170908095416694-575288831.png
food 和 snow 都是可以吃的

1054453-20170908095553147-68854067.png

1054453-20170908095605116-380749151.png

1054453-20170908095728741-1833327723.png

1054453-20170908095750960-1689510577.png

1054453-20170908095857741-2033975235.png

1054453-20170908095947210-362896444.png
可以同时实现多个接口
1054453-20170908100019991-737998226.png

接口与接口之间也可以有继承关系
1054453-20170908100328632-917288832.png

1054453-20170908100316882-1005436023.png

1054453-20170908100350991-1032043836.png

类型转换

1054453-20170908100501772-938394653.png

1054453-20170908100609085-1329012848.png

1054453-20170908100716632-365436891.png

1054453-20170908100832319-549637687.png

向上转换

1054453-20170908101328288-1760984350.png

1054453-20170908101427101-767198514.png

显式转换

1054453-20170908101512429-1587733287.png

显示转换
1054453-20170908101527257-777060802.png

1054453-20170908101658101-504971193.png
1054453-20170908101704538-2085845456.png

1054453-20170908101725616-341396222.png

1054453-20170908101747147-894943947.png
超类的引用不能访问子类的方法

方法的查找

1054453-20170908102009647-1976353277.png
实例方法查找
从创建对象的时候向上查找

1054453-20170908102416647-875110460.png
这里和C++不太一样

1054453-20170908102334507-842479890.png

banding

早绑定:
晚绑定:动态绑定
动态绑定
1054453-20170908103100882-1320739147.png

二次分发技术

1054453-20170908103357976-1236634512.png

1054453-20170908103518413-1412133774.png

1054453-20170908103536991-1635577089.png

1054453-20170908103618507-305589552.png

构造方法与多态性:

1054453-20170908104053007-1887331613.png

1054453-20170908104109929-774537737.png
先超类,后组件,最后自己

1054453-20170908104412616-1490328181.png

构造方法中调用多态方法
1054453-20170908104703429-1036725512.png
1054453-20170908104801413-148237633.png

1054453-20170908104901397-2020260044.png
1054453-20170908104915882-1008775783.png

输入输出流

异常处理简介
异常处理得概念
1054453-20170908120155116-588799601.png

错误&异常
1054453-20170908120215929-1405974051.png

1054453-20170908120305179-2015346077.png

预定义常见得异常
1054453-20170908120346226-1473482721.png

1054453-20170908120407882-652538629.png

异常得处理

检查型的异常
1054453-20170908120540663-354125899.png
抛出异常得例子

1054453-20170908120951351-309119654.png

1054453-20170908121451288-1416396411.png

生成异常对象3种方式
1054453-20170908121605554-361765252.png

1054453-20170908121740929-1384695963.png

1054453-20170908121900772-1985494591.png
要传一个字符串进去描述发生了什么

输入输出流

1054453-20170908122123179-1524212821.png
1054453-20170908122208179-705412390.png
面向字符的抽象流类
1054453-20170908122235788-1973774262.png
1054453-20170908122249179-1931204929.png
面向字节的是面向非文本数据的数据
尽量存成2进制的数据面向字节

标准输入输出流对象
1054453-20170908122748413-1371147508.png
1054453-20170908122820976-2059053374.png

1054453-20170908122839522-1144982172.png

标准输入输出重定向
1054453-20170908122948257-1288017239.png

1054453-20170908123033226-1089832262.png
重定向

写文本文件

1054453-20170908140140663-1162369791.png
Filerwirter 对象的实例
捕获和处理IO异常
1054453-20170908141417741-388683210.png

1054453-20170908141457538-70214896.png
用BufferedWirter换行
套一个BUfferedWriter 可以提供缓冲提高效率
1054453-20170908141548460-689302771.png
用newLine可以提供正确的换行

读文本文件

FileReader类 从文本文件中读取字符
套一个缓冲流
1054453-20170908141723632-993236103.png
读一行如果不空就接着读

1054453-20170908141755507-1911853167.png

1054453-20170908141822554-1622286531.png
返回某个字符的int类型的整数

例子:文件的复制

1054453-20170908141929538-1441061378.png
1054453-20170908142024288-1830805676.png

1054453-20170908142048819-1451664635.png

1054453-20170908142148038-1830256461.png

1054453-20170908142355866-2097209071.png
单入口
1054453-20170908142454851-1147483612.png

写二进制文件

1054453-20170908144847538-316279926.png

1054453-20170908144858694-422898848.png
1054453-20170908144927554-1244465830.png

讲三个数据写入数据文件
1054453-20170908144954522-1728482810.png

1054453-20170908145935851-1016657243.png

1054453-20170908150111835-437533968.png
三次嵌套
按类型缓冲写数据
1054453-20170908150612694-1171686797.png

1054453-20170908150708522-302284749.png

1054453-20170908152117366-1234203212.png
readbyte 是补符号位
readunsigedbyte 是零扩展

从二进制文件中读取数据

1054453-20170908152848397-512883790.png
1054453-20170908152920804-1836588254.png
又是三次嵌套
读完了会抛出一个异常
1054453-20170908153048554-1664982652.png

1054453-20170908153422054-8801652.png

读单个字节,写单个字节
1054453-20170908153550538-2121776990.png
低位8位

1054453-20170908153618304-2055364581.png

1054453-20170908153705913-1397808645.png

1054453-20170908153738085-1279979063.png
一个字节一个字节的复制
EOFEception
1054453-20170908153808132-2014350173.png
两个异常

Flie类

管理文件的操作
1054453-20170908153920647-1075638373.png

1054453-20170908154120429-1819354439.png

1054453-20170908154210929-43719758.png

1054453-20170908154233179-819731326.png

改进
1054453-20170908154340366-469284640.png
用File判断文件是否存在

处理压缩文件

1054453-20170908154447397-2015749730.png

1054453-20170908154908116-509573407.png

1054453-20170908154938663-1608031678.png
这里几乎嵌套了四次流
FileINputStream 面向字节的流
GZIPInputStream 解压
InputStreamReader 桥梁
BufferedReader 提供了readLine
1054453-20170908155441007-561877867.png
第二个不关文本文件的事直接按字节复制就好
1054453-20170908155514288-949818401.png

ZIP格式更复杂一些

1054453-20170908155656897-2115281849.png

1054453-20170908155722147-346922212.png
1054453-20170908155751038-497063215.png

1054453-20170908155902101-1769310436.png
重要的一行

解压缩ZIP
1054453-20170908160010179-908014924.png
解压缩回复路径
1054453-20170908160127882-1888872159.png
1054453-20170908160217038-816350057.png有没有斜杠的统一

1054453-20170908160229132-1997355228.png
是目录要创建,不存在要创建
1054453-20170908160301163-723100855.png

1054453-20170908160332757-1760924565.png

1054453-20170908160510757-1179035051.png

1054453-20170908160509585-1887165366.png

1054453-%2020170908160523241-1499383048.png

对象序列化

对象的读写
1054453-20170908160638772-1728566102.png

1054453-20170908160723397-237788371.png

1054453-20170908160746538-1870878976.png
将对象村办
s.flush 清空缓冲区
1054453-20170908160850382-1367487552.png

1054453-20170908161045210-118297637.png
readObject 方法读取一个对象

1054453-20170908161126257-509878790.png
空接口。。
1054453-20170908161140272-646212958.png
阻止写入文件
1054453-20170908161248897-690306874.png

1054453-20170908161348116-1281930535.png
ObjectOutputStream 嵌套FileOutputstream
对象输出流

1054453-20170908161544397-1433369971.png

Externalizable 接口
1054453-20170908161722491-1294855715.png

实现两个方法
writeExternal() readExternal()
写和读的定制

随机文件的读写

RandowmAccessFile
1054453-20170908163251679-1608785838.png

1054453-20170908163649585-1475036445.png

1054453-20170908163701601-1926682459.png

1054453-20170908163709897-1687377940.png

1054453-20170908163903882-1018739799.png

1054453-20170908163913491-794679887.png

转载于:https://www.cnblogs.com/sfzyk/p/7493468.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值