基础概念
Java的工作方式
类与对象
1.对象是靠类的模型塑造出来的。类是对象的蓝图。它会告诉虚拟机如何创建某种类型的对象。
2.所有的Java程序都定义再类中。
3.对象已知的事物称为实例变量,它代表对象的状态
4.对象可执行的动作称为方法,它代表对象的行为。
变量
变量有两种primitive主数据类型和引用
primitive主数据类型
类型 | 位数 | 值域 |
---|---|---|
boolean | true或false | |
char | 16 bits | 0~65535 |
byte | 8 bits | -128~127 |
short | 16 bits | -32768~32767 |
int | 32 bits | -2147483648~2147482647 |
long | 64 bits | -很大~+很大 |
float | 32 bits | 范围规模可变 |
double | 64 bits | 范围规模可变 |
命名规则
1.名称必须以字母、下划线或$符号开头,不能用数字开头
2.除了第一个字符以外,后面就可以用数字。
3.避开Java的保留字
对象的行为
状态影响行为,行为影响状态。对象的状态和行为两种属性,分别由实例变量与方法来表示。
1.方法可以依据实例变量来展现不同的行为。
2.传给方法的参数必须符合声明时的数量,顺序和类型。
3.方法必须声明返回类型。使用void类型代表方法不返回任何单系。
编写程序
1.Java程序可以尝试从高层的设计开始。找出类该做的事情。列出实例变量和方法。
2.创建类时可以列出下列三种东西:
伪码——实例变量及方法的声明,最重要的方法的逻辑。做什么事情而不是如何做。
测试码——思索和编写测试用代码,能够帮助了解被测程序需要完成什么事情。
真实码
继承与多态
继承
- 子类是extends父类出来的
- 子类会继承父类所有的public类型的实例变量和方法,但不会继承父类private类型的变量和方法。
- 继承下来的方法可以覆盖,但是实例变量不能被覆盖。
- 使用IS-A测试验证继承结构的合理性。IS-A是单方向的。即猫是动物,但动物不一定是猫。
覆盖的规则
覆盖一般是覆盖父类的方法。
- 参数必须要一样,且返回类型必须要兼容。
- 不能降低方法的存取权限。
重载的规则
重载的意义是两个方法的名称相同,但参数不同,
- 返回类型可以不同
- 不能只改变返回类型
- 可以更改存取权限
接口与抽象类
接口是多态和Java的重点。
- 如果不想让某个类被初始化,就可以用abstract关键词将它标记为抽象的。
- 抽象类可以带有抽象和非抽象的方法。但是一个类如果有抽象方法,则该类一定是抽象的。
- 抽象方法没有内容,以分号结束。抽象方法必须再具体的类中运行。
- Java不允许多继承,但是可以实现多接口。
异常处理
例如
public void test() {
try {
test(true);
} catch (IOException e) {
e.printStackTrace();
}
}
public void test(boolean a) throws IOException {
if (a) {
throw new IOException();
}
}
要点
- 方法可在运行期间遇到问题时抛出异常。
- 异常是Exception类型的对象。
- 编译器不会在意RuntimeException类型异常。
- 方法可用throw关键词抛出异常。可能抛出异常的方法需要声明throws。
- 如果需要处理异常,可用try/catch,将异常处理放在catch中。