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/30 | 15/400 | hello java |
第二周 | 350/4000 | 3/30 | 40/400 | 流程控制 |
第三周 | 500/4000 | 4/40 | 50/400 | 类与对象、封装 |
参考资料
《Java学习笔记》《Java学习笔记》学习指导
毕向东java教学
相关文章推荐
- Android开发初学者必看文档:Android开发规范
- jQuery.Deferred
- STL模板中的map的使用与例题
- python-highlight
- 简洁清爽的LaTeX论文模板
- C++ vector的排序------对于结构体vector, 需要自己实现比较
- 数据挖掘里面机器学习算法的讲解2
- Perl 5 中的三大OO特性
- sublime 插件
- python web编程中的WSGI协议
- 深入解析Python中函数的参数与作用域
- android多任务下载的状态更新
- 用MVC模式 code ListView
- 一个80后的网站
- 基于链表的插入排序
- java.sql.SQLException: No suitable driver found for jdbc
- http伪造,(asp的)好用,成功!
- Design Patterns Apply On Soccer Engine
- iOS定位原理和使用建议(转)
- 学习笔记-第四周-心得体会