一个Java程序可以认为是一系列对象的集合,这些对象通过调用彼此的方法来协同工作。
对象 |
对象 是类 的一个实例,有状态 和行为 。例如人 是一个类 ,人 的状态 有:肤色、身高、年龄,行为 有:吃饭、睡觉。张三 是一个对象 ,属于人 这个类,张三 有人 的状态 和行为 ,还可以有属于自己的状态 和行为 。 |
类 |
类 是一个模板,它描述一类对象 的状态 和行为 。 |
方法 |
方法 就是行为,一个类可以有很多方法 。逻辑运算、数据修改以及所有动作就是在方法中完成的。 |
实例变量 |
每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。 |
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
新建文本文档,修改文件名为:HelloWorld.java
右键记事本打开
输入上面的代码并保存(class HellowWorld 必须和文件名一致)
打开cmd命令窗口,定位到目标文件所在位置
输入命令:javac HelloWorld.java 编译代码
输入命令:java HelloWorld 运行程序
基本语法
- 大小写敏感
- 类名:驼峰命名法
- 方法名:方法名以小写字母开头
- 原文件名:原文件名必须和类名相同
- 主方法入口:所有的Java程序由
public static void main(String[] args)
方法开始执
Java标识符
类名、变量名以及方法名都被称为标识符。
- 所有的标识符都应该以字母(A-Z或者a-z)、美元符($)或者下划线(_)开始
- 首字符之后可以是任何字符的组合
- 关键字不能作为标识符
- 标识符是大小写敏感的
Java修饰符
修饰符用来修饰类中的属性和方法。主要有两类修饰符:
- 访问控制修饰符:default、public、protected、private
- 非访问控制修饰符:final、abstract、strictfp
Java变量
- 局部变量
- 类变量(静态变量)
- 成员变量(非静态变量)
Java数组
数组是储存在堆上的对象,可以保存多个同类型变量。
Java枚举
枚举限制变量只能是预先设定好的值。使用枚举可以减少bug。
class Cup {
emum CupSize { SMALL, MEDUIM, LARGE }
CupSize size;
}
pubilc class CupTest {
public static void main(String[] args) {
Cup cup = new Cup;
cup.size = Cup.CupSize.SMALL;
}
}
枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。
Java关键字
保留字是指现在版本尚未使用,但以后版本可能会作为关键字使用
关键字 | 描述 |
---|---|
abstract | 抽象方法,抽象类的修饰符 |
assert | 断言条件是否满足 |
boolean | 布尔数据类型 |
break | 跳出循环或者label代码段 |
byte | 8-bit 有符号数据类型 |
case | switch语句的一个条件 |
catch | 和try搭配扑捉异常信息 |
char | 16-bit Unicode字符数据类型 |
class | 定义类 |
const | 未使用 |
continue | 不执行循环体剩余部分 |
default | switch语句中的默认分支 |
do | 循环语句,循环体至少会执行一次 |
double | 64-bit双精度浮点数 |
else | if条件不成立时执行的分支 |
enum | 枚举类型 |
extends | 表示一个类是另一个类的子类 |
final | 表示一个值在初始化之后就不能再改变了;表示方法不能被重写,或者一个类不能有子类 |
finally | 为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。 |
float | 32-bit单精度浮点数 |
for | for循环语句 |
goto | 未使用 |
if | 条件语句 |
implements | 表示一个类实现了接口 |
import | 导入类 |
instanceof | 测试一个对象是否是某个类的实例 |
int | 32位整型数 |
interface | 接口,一种抽象的类型,仅有方法和常量的定义 |
long | 64位整型数 |
native | 表示方法用非java代码实现 |
new | 分配新的类实例 |
package | 一系列相关类组成一个包 |
private | 表示私有字段,或者方法等,只能从类内部访问 |
protected | 表示字段只能通过类或者其子类访问子类或者在同一个包内的其他类 |
public | 表示共有属性或者方法 |
return | 方法返回值 |
short | 16位数字 |
static | 表示在类级别定义,所有实例共享的 |
strictfp | 浮点数比较使用严格的规则 |
super | 表示基类 |
switch | 选择语句 |
synchronized | 表示同一时间只能由一个线程访问的代码块 |
this | 表示调用当前实例或者调用另一个构造函数 |
throw | 抛出异常 |
throws | 定义方法可能抛出的异常 |
transient | 修饰不要序列化的字段 |
try | 表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码 |
void | 标记方法不返回任何值 |
volatile | 标记字段可能会被多个线程同时访问,而不做同步 |
while | while循环 |
Java注释
注释中的字符将被Java编译器忽略
继承
在Java中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性和方法,那么你可以将新创建的类继承该类。
利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(subclass)。
接口
在Java中,接口可以理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。
接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。