20165306 第三周学习任务
一、教材学习内容总结
4.1编程语言的几个发展阶段
- 面向机器语言(机器语言、汇编语言)→低级语言
- 面向过程语言(C语言、Fortran语言)→高级语言
- 面向对象语言(Java语言)→封装性、继承、多态
4.2类
类的定义包括两部分:类声明和类体
4.2.1类声明
- 首字母大写,当类名由几个单词复合而成时,每个单词的首字母应大写(驼峰习惯)
- 类名见名知意
4.2.2类体
- 变量的声明:体现对象的属性
- 方法的定义:体现对象所具有的行为
4.2.3成员变量
声明变量部分所声明的变量被称为成员变量或域变量
1.成员变量的类型
可以是任何一种数据类型,包括基本类型(整浮字逻)、引用类型(数组、对象、接口)
2.成员变量的有效范围
在整个类内都有效,其有效性与它在类体中的先后位置无关(人们习惯先介绍属性再介绍行为)
3.编程风格
- 一行只声明一个变量
- 首单词的首字母小写,其余单词的首字母大写(驼峰习惯)
- 变量名字见名知意,名字中不要讲小写英文字母l和数字1相邻
4.2.4方法
方法的定义包括两部分:方法头和方法体
1.方法头
- 由方法的类型、名称、小括号、参数列表所构成
- 无参数方法定义的方法头中没有参数列表(小括号中无任何内容)
- 方法返回的数据的类型可以是任一数据类型,当一个方法是void类型时,该方法不需要返回数据
- 方法的参数可以是任意的数据类型
2.方法体
- 在方法体中声明的变量和方法的参数被称作局部变量
- 方法的参数在整个方法内有效,方法内的局部变量从声明它的位置之后开始有效
3.区分成员变量和局部变量
如果局部变量的名字与成员变量的名字相同,那么该成员变量在这个方法内暂时失效,如果想在该方法中使用被隐藏的成员变量,必须使用关键字this
4.局部变量没有默认值
成员变量有默认值,局部变量没有默认值,因此在使用局部变量之前,必须保证局部变量有具体的值
4.2.5需要注意的问题
- 对成员变量的操作只能放在方法中
- 声明成员变量同时赋予初值
4.2.6类的UML图
长方形垂直地分为三层,从上至下依次为名字层、变量层(属性层)、方法层(操作层)
4.3构造方法与对象的创建
4.3.1构造方法
- 构造方法的名字必须与它所在的类的名字完全相同,而且没有类型
- 默认构造方法无参数、方法体中无语句
4.3.2创建对象
1.对象的声明: 类的名字 对象名字
2.为声明的对象分配变量:使用new运算符和类的构造方法
3.对象的内存模型
- 所谓创建对象,就是指为对象分配变量,并获得一个引用,以确保这些变量由该对象来操作管理
- new运算符只能和类的构造方法进行运算,运算的最后结果是一个十六进制的数,这个数称作对象的引用
4.3.3使用对象
通过使用点运算符“.”(也称引用运算符或访问运算符)可以实现对自己的变量的访问和方法的调用
1.对象操作自己的变量(体现对象的属性)
对象.变量;
2.对象调用类中的方法(体现对象的行为)
对象.方法
4.3.4对象的引用和实体
- 避免使用空对象
- 一个类声明的两个对象如果具有相同的引用,二者就具有完全相同的变量(实体)
- 垃圾收集:周期地检测某个实体是否已不再被任何对象所有(引用),如果发现这样的实体,就释放实体占有的内存
- 如果希望Java虚拟机立刻进行“垃圾收集”操作,可以让System类调用gc()方法
4.4类与程序的基本结构
使用通配符*代表各个源文件的名字来编译全部的源文件
javac *.java
二、教材学习中的问题和解决方式
4.4讲中的例子5涉及3个Java源文件,尝试了很多次终于运行成功
要把三个源文件保存到同一个文件夹中
三、代码调试中的问题和解决过程
- 本周学习过程中遇到了输入法消失的问题,按照教程重新安装了搜狗输入法
- 输入希腊字母、日文等:虚拟机桌面左侧一列“软件”→“字符映射表”→“启动”→“希腊字母”→“复制”→“粘贴”
四、代码托管
五、学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 48/48 | 1/1 | 10/10 | |
第二周 | 204/252 | 3/4 | 20/30 | |
第三周 | 1773/2025 | 2/6 | 15/45 |