20165306 第三周学习任务

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运算符和类的构造方法

例子1

例子2

3.对象的内存模型

  • 所谓创建对象,就是指为对象分配变量,并获得一个引用,以确保这些变量由该对象来操作管理
  • new运算符只能和类的构造方法进行运算,运算的最后结果是一个十六进制的数,这个数称作对象的引用

4.3.3使用对象

通过使用点运算符“.”(也称引用运算符或访问运算符)可以实现对自己的变量的访问和方法的调用

1.对象操作自己的变量(体现对象的属性)

对象.变量;

2.对象调用类中的方法(体现对象的行为)

对象.方法

例子3

4.3.4对象的引用和实体

  • 避免使用空对象
  • 一个类声明的两个对象如果具有相同的引用,二者就具有完全相同的变量(实体)
  • 垃圾收集:周期地检测某个实体是否已不再被任何对象所有(引用),如果发现这样的实体,就释放实体占有的内存
  • 如果希望Java虚拟机立刻进行“垃圾收集”操作,可以让System类调用gc()方法

例子4

4.4类与程序的基本结构

使用通配符*代表各个源文件的名字来编译全部的源文件

javac *.java

其余代码链接

二、教材学习中的问题和解决方式

4.4讲中的例子5涉及3个Java源文件,尝试了很多次终于运行成功

要把三个源文件保存到同一个文件夹中

例子5

三、代码调试中的问题和解决过程

  • 本周学习过程中遇到了输入法消失的问题,按照教程重新安装了搜狗输入法
  • 输入希腊字母、日文等:虚拟机桌面左侧一列“软件”→“字符映射表”→“启动”→“希腊字母”→“复制”→“粘贴”

搜狗输入法安装教程

四、代码托管

五、学习进度条

代码行数(新增/累积) 博客量(新增/累积)
目标 5000行 30篇
第三周 1773/2025 2/6
原文地址:https://www.cnblogs.com/5306xyh/p/8596675.html