您的位置:首页 > 其它

20145301第三周学习总结

2016-03-20 23:44 218 查看

20145301第三周学习总结

教材学习内容总结

第四章

4.1 类与对象

对象(Object):存在的具体实体,具有明确的状态和行为

类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制

从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象

从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程(abstraction)

类是对象的设计图,对象是类的实例,生成对象要先定义类




4.2 基本类型包装

Long、Integer、double、float、boolean等类是所谓打包器,主要目的是提供对象实例作为“壳”,价格基本类型打包在对象中,可以将基本类型答案做对象操作。

自动装箱拆箱可以使程序更简洁,在运算时编译程序会自动拆箱。

如果数值超出类的范围,就会建立新的实例,用'=='做比较易出错,若想比较数值应用equals()。

4.3 数组对象

java中的数组和C语言有不同之处。声明数组是在类型关键词后,如'int[] score'。定义的时候不必规定数组长度,指出单个数值时需要在'[]'里标明序号,如果想知道数组长度则需要用length属性。

使用'new'建立数组后每个索引元素会有初始值,可以用'java.util.Arrays'的'fill()'方法更改默认值。

'int[] score2=score1'并不是数组复制,只是把'score1'的参考对象也给'score2'做参考对象。





4.4 字符串对象

字符串本质是打包字符数组的对象,是java.lang.String类的实例。

要想比较字符串实际字符内容是否相同,不能使用==,要用equals()。

使用javac指令没有指定-encoding选项时,会使用操作系统默认编码。

第五章

5.1 何谓封装

初始流程 , 构造函数是与类名称同名的方法,不用声明返回类型;构造函数可多个,只需参数类型和个数有所区别,这称为重载构造函数;创建对象时,数据成员就会初始化,如果没有指定初始值,则会使用默认值初始化;如果撰写了对象初始区块,对象建立之后会先执行对象初始区块,接着才调用指定的构造函数。

操作流程 , 在类中定义方法,如果不用返回值,方法名称前可以声明 void ;在java命名习惯中,方法名称首字母是小写,后面单词首字母大写;方法可定义多种,对于类似方法可定义相同名称,只要其参数的个数、类型有所区别;当定义取值的方法时,统一规定命名方式,以get开头,后加首字母大写的单词。

内部数据 , 如果有些数据是类所私有的,在java中可以使用private 关键词定义,当没有提供方法存取 private 成员时,用户就不能进行存取,即封装了类私有数据,让用户无法直接存取,而必须通过所提供的操作方法,经过定义了的流程才有可能存取私有数据;private也可用在方法或构造函数声明上。

封装目的 , 主要是隐藏对象细节,将对象当作黑箱进行操作。

5.2 类语法细节

public , 可在类、对象数据成员、方法、构造函数中使用。

private:权限修饰,类私有,用户无法在其他类代码中直接读取,而public则可以

this , 除了被声明为 static 的地方外,this 关键字可以出现在类的任何地方;
在构造函数参数与对象数据成员同名时,可用 this 区别;
this()代表调用另一个构造函数,至于调用哪个构造函数,则视调用this()时给的自变量类型与个数而定。

final , 如果对象数据成员被声明为 final ,但没有明确使用=指定值,那表示延迟对象成员值得指定,在构造函数(每个)执行流程中,一定要有对该数据成员指定值的动作,否则编译错误。

static用于修饰成员(成员变量和成员函数),被声明为static的成员,不会让个别对象拥有,而是属于类。在static方法中不能出现this关键字,static方法中不能用非static数据或方法成员。

import static语法是为了偷懒,但要注意名称冲突的问题。

问题和解决过程

问题

开源中国代码托管问题,我在Mac版上暂未找到一劳永逸的办法。

其中一个有关import的代码编译不通过,截图如下:


解决过程

已完成代码托管。 截图如下:



其他

实用API介绍,推荐给大家几个:

delimiter() 返回此 Scanner 当前正在用于匹配分隔符的 Pattern。

hasNext() 判断扫描器中当前扫描位置后是否还存在下一段。(原APIDoc的注释很扯淡)

hasNextLine() 如果在此扫描器的输入中存在另一行,则返回 true。

next() 查找并返回来自此扫描器的下一个完整标记。

nextLine() 此扫描器执行当前行,并返回跳过的输入信息。

心得体会

上周试卷的成绩让我十分意外,只得了十分,然而交卷时的我还是比较有把握的...这说明了一个问题。我的认知没有经过检验,有点自信过头了,这周我会吸取校训,做完课后题等要多于同学积极沟通交流,交换经验教训,同时修正自己自学的认知。这样才能真正学有所得,而不是简简单单的只按自己的理解来进行。这次的学习一定要避免这个问题。

学习进度条

目标 代码行数 博客量学习时间重要成长
目标4000行30篇400小时----
第一周 100/4000 2/3015/400hello java
第二周350/40003/3040/400流程控制
第三周500/40004/4050/400类与对象、封装

参考资料

《Java学习笔记》

《Java学习笔记》学习指导

毕向东java教学
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: