码迷,mamicode.com
首页 > 其他好文 > 详细

20145301第六周学习总结

时间:2016-04-11 01:28:28      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

20145301第六周学习总结

教材学习内容总结

第十章 输入/输出

10.1 InputStream与OutputStream

InputStream与OutputStream  
流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而言的  
InputStream与OutputStream 
InputStream、OutStream提供串流基本操作,如果想要为输入/输出的数据做加工处理,则可以使用打包器类。常用的打包器具备缓冲区作用的BufferedOutputStream、BufferedInputStream,具备数据转换处理的DataInputStream、DataOutputStream,具备对象串行化能力的ObjectInputStream、ObjectOutputStream等。 read 针对字符数据的读取,Java SE提供了java.io.Reader类,其抽象化了字符数据读入的来源。针对字符数据的写入,则提供了java.io.Writer类。其抽象化了数据写出的目的地。 write FileReader、FileWriter则可以对文档做读取与写入,读取或写入时默认会使用操作系统默认编码来做字符转换。在启动JVM时,可以指定-Dfile.encoding来指定FileReader、FileWriter所使用的编码。 二进制文件 标准输入输出 System.in: 标准输入,默认关联到键盘(终端输入) System.out: 标准输出,默认关联到显示器(终端输出) System.err: 标准错误,默认关联到显示器(终端输出) 输入输出重定向:setIn,setOut,setErr FileInputStream与FileOutPutStream FileInputStream是InputStream的子类,可以指定文件名创建实例,一旦创建文档就开启,接着就可用来读取数据。FileOutputStream是OutputStream的子类,可以指定文件名创建实例,一旦创建文档就开启,接着就可以用来写出数据。无论FileInputStream还是FileOutputStream,不使用时都要使用close()关闭文档。 文件读写 装饰器类 Decorator模式 BufferedInputStream与BufferedOutputStream: 内部提供缓冲,提高效率 DataInputStream与DataOutputStream:基本数据类型与字节的转换,API好好研究一下 ObjectInputStream与ObjectOutputStream java.io.Serializable接口 字符处理类 Reader与Writer Reader、Writer也有一些装饰器类可供使用。如果串流处理的字节数据,实际上代表某些字符的编码数据,而你想要将这些字节数据转换为对应的编码字符,可以使用InputStreamReader、OutputStreamWriter对串流数据打包。BufferedReader、BufferedWriter可对Reader、Writer提供缓冲区作用,在处理字符输入/输出时,对效率也会有所帮助。PrintReader、PrintStream使用上极为类似,不过除了可以对OutputStream打包之外,PrintWriter还可以对Writer进行打包,提供print()、println()、format()等方法。 字符处理装饰器 想要将这些字节数据转换为对应的编码字符,可以使用InputStreamReader、OutputStreamWriter对串流数据打包。 BufferedReader、BufferedWriter可对Reader、Writer提供缓冲区作用,在处理字符输入/输出时,对效率也会有所帮助。 PrintWriter还可以对Writer进行打包,提供print()、println()、format()等方法。

第十一章部分 - 线程与并行API

7.1 何谓接口

  1. 定义形式:interface interfaceName {…}

    成员方法默认为抽象的、公有的,成员属性默认为静态的、final修饰的

    接口只是提供一种形式,具体的实现细节交由它的类完成

    由于接口不涉及具体的实现,因此在接口中的成员变量是静态常变量,默认为static和final修饰

  2. 类实现一个接口:class MyClass implements A, B, C {…}

    一个类可以实现多各个接口

    注意:虽然在接口中没有显式声明方法是公有的,但接口中默认的访问控制是公有的,而类中默认的访问控制是包内友好,所以必须在类中将这个方法用public修饰

  3. 接口和抽象类的选择:

    Java中类之间不支持多继承,但类可以实现多个接口

    若类需要包含一些方法的实现,必须实现为抽象类,其他情况两者皆可,优先选择使用接口,使程序更加易于扩展

7.2 接口语法细节

  • 使用interface来定义抽象的行为外观,方法要声明为public abstract,无须且不能有操作。为了方便,也可以省略public abstract,编译程序会协助补齐。可以使用接口枚举常数,只能定义为public static final。为了方便,也可以省略public static final。
  • 接口可以继承别的接口,也可以同时继承两个以上的接口,也是使用extends关键字。
  • enum语法可用于定义枚举常数,enum实际上定义了类,而enum中列举的常数实际上是public static final,无法撰写程序直接实例化枚举类型,因为构造函数权限设定为private,只有类中才可以实例化。

问题和解决过程

问题

不清楚覆盖和重载。

解决过程

在博客园上找到高手之见,特推荐:

重载和覆盖的区别:

  • 重载发生在同一个类之中,重载要求函数名相同,参数不同(参数个数||参数类型||参数顺序)。特别的函数的返回类型不影响重载。

1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果; 
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致; 
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;  
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

  • 覆盖发生在父子类之间,覆盖同样要求函数名相同,并且参数也相同。覆盖遵循“两同两小一大”的原则。 两同是即是函数名和参数是相同的;两小是抛出的异常更小或相同,返回类型更小或相同;一大是访问权限更大或相同。 构造函数和静态方法支持重载,但是不可以被覆盖。(构造方法和static的相似性,也可以联系到private和final关键字也有此相似性)

1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int, float), 但是不能为fun(int, int));  
2、不能通过访问权限、返回类型、抛出的异常进行重载;  
3、方法的异常类型和数目不会对重载造成影响;

其他

  • 抽象类和接口的区别:  
    在设计理念上,一个类只能继承一个抽象类,但是可以实现多个接口。  
    抽象类可以含有普通成员变量和非抽象的方法,而接口的成员变量和方法都有固定的修饰。即:public static final 和 public abstract。对于继承者来说,抽象类的方法子类可以不全部复写,但是接口的方法抽象类是必须全部复写的。  
    抽象类也可以implements接口,可以实现接口中的方法,也可以不实现。抽象类不可以被final修饰。抽象类可以包含非抽象方法。

    心得体会

    这周感觉学习比较吃力,抽象的东西越来越多,理解上难度也逐渐增加。如:对象、封装等概念,即使读了,也不能完全理解。也不能再吃C语言的老本,需要我投入更多的时间和精力,我需要更多的去展开去学习,不能仅仅局限在看书,码代码上,不懂的地方,我会先码着码,好先留存着问题,去与同学进行交流。我发现博客园的学习不应仅仅局限于dky的小圈子,我们可以抽些时间,看看其他高手的博客进行学习,会对我们的学习很有帮助。

学习进度条

目标 代码行数 博客量学习时间重要成长
目标 4000行 30篇 400小时 ----
第一周  100/4000  2/30 15/400 hello java
第二周 350/4000 3/30 40/400 流程控制
第三周 500/4000 4/30 50/400 类与对象、封装
第四周 700/4000 5/30 50/400 继承、接口

参考资料

    • 《Java学习笔记》
    • 《Java学习笔记》学习指导
    • 毕向东java教学

20145301第六周学习总结

标签:

原文地址:http://www.cnblogs.com/5301z/p/5376603.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!