20165315 第三周学习总结
本周学习中遇到的问题和解决过程
- 在编写书上第四章例子5的代码时,我发现无法直接使用
javac -d bin src/Example4_5.java
命令使该代码的字节码文件直接放入bin
目录
解决方法:
经过询问老师和同学,得知问题出在无法一同编译另外两个源文件,输入如下图所示的代码即可编译并运行成功
- 在编写书上第四章例子17和例子18的代码时,无法通过编译,显示如下图错误:
解决方法: 经过多次尝试和细心检查后,我发现是在编写时大意,将setSides
编写为setSide
,一开始一直以为是主类中无法调用setSides
中的内容才出错,便没有检查是否是编写出了问题...
学习总结
- 类的名字要符合标识符规定,首字母大写,复合单词则每个单词首字母都要大写
- 类体分为两部分:变量(成员变量或域变量)的声明和方法的定义
- 变量的名字要符合标识符规定,首字母小写,复合单词则从第二个单词开始每个单词首字母大写
- 方法分为方法头和方法体。方法头分为有参数的方法头和没参数的方法头,命名习惯和变量命名习惯相同;方法体中声明的变量和方法的参数被称为局部变量
- 局部变量只在方法内有效,而且与其声明的位置有关
- 如果局部变量与成员变量的名字相同,那么成员变量被隐藏,想使用被隐藏的成员变量,必须使用关键字
this
- 成员变量有默认值,局部变量没有默认值
- 对成员变量的操作只能放在方法中
- UML图属于结构图,通常包含类、接口、泛化关系、关联关系、依赖关系和实现关系的UML图。顶部第一层是名字层,第二层是变量层(属性层),第三层是方法层(操作层)
- 类是创建对象的模版,没有类就没有对象
- 构造方法是类中的一种特殊方法,用来创建对象。它的名字必须与它所在类的名字完全相同,而且没有类型
- 创建一个对象包括对象的声明和为对象分配变量两个步骤,其中使用
new
运算符和类的构造方法 - 通过使用运算符
.
,对象可以实现对自己的变量和方法的调用 - 方法中参数变量的值是调用者指定的值的拷贝
- 当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体
- 可变参数使用
...
表示若干个类型相同的参数并且最后一个参数必须是方法的参数列表中的最后一个参数 - 如果一个对象a组合了对象b,那么对象a就可以委托对象b调用其方法,但是对象b对对象a包含的算法是一无所知的
- 成员变量可细分为实例变量和类变量,在声明成员变量时用关键词
static
给予修饰的称作类变量,否则称为实例变量。- 不同对象的实例变量互不相同(占不同内存)
- 所有对象共享类变量(占相同内存)
- 通过类名直接访问类变量
- 方法也可分为实例方法和类方法(静态方法)
- 对象调用实例方法(实例方法的入口地址被所有对象共享),不能被类名调用
- 类名调用类方法(不可以操作实例变量)
- 设计类方法的原则:不必创建对象就可以用类名直接调用它
- Java中存在重载和重写两种多态。重写与继承有关,重载则指:一个类可以有多个方法具有相同的名字,但必须满足参数个数不同或参数个数相同且某个参数类型不同(要避免歧义调用)
- 包语句:
package
,包名可以是合法的标识符,也可以是若干个标识符加.
分隔而成。运行时要注意使用java 包名.主类名
import
语句:引入包中的类和接口。举例:import java.util.Date
引入Date
类,而import java.util.*
引入了包中所有的类,import tom.jiafei.*
引入非类库中的类- 访问权限
- 关键字
private
修饰的成员变量和方法称为私有变量和私有方法,另外的类无法访问; - 关键字
public
修饰的成员变量和方法称为共有变量和共有方法,另外的类能访问; - 关键字
protected
修饰的成员变量和方法称为受保护的成员变量和受保护的方法,另外的类的同一个相同包名中可以访问 - 无以上三个关键字的成员变量和方法被称为友好变量和友好方法
- 基本类型的类封装:
Byte
类、Integer
类、Short
类、Long
类、Float
类、Double
类、Character
类