基本语法
语言规范(打死都不可侵犯的规则)
- 大小写敏感: Hello 与hello不同
- 类名:首字母应该大写,若由多个单词组成,每个单词首字母都应该大写,例如:MyTestJavaClass
- 方法名:方法名首字母小写,遵循 驼峰命名法 ,若由多个单词组成,后面的每个单词首字母大写,例如:sayHelloWorld()
- 源文件名:源文件名必须和类名相同,后缀为.java
- 主方法入口:所有的程序语言都去找main没有错。Java由 public static void main(String[] args)方法开始执行。一个程序有且仅有一个入口
标识符
类名、变量名、方法名都被称为标识符。
标识符遵循以下规则:
- 都应该以字母(A-Z或a-z),美元符($)、或下划线(_)开始
- 首字母之后可以是字母(A-Z或a-z),美元符($)、或下划线(_)或数字的任意组合
- 关键字不能用作标识符
- 标识符是大小写敏感的
- 合法标识符:name、$money、_location、_1_location
- 非法标识符:123abc、-money
修饰符
- 访问修饰符:default、public、private、protected
- 非访问修饰符:final、abstract、static、synchronized
变量
- 类变量:独立于方法之外的变量,用static修饰
- 实例变量:独立于方法之外的变量,不过没有static修饰
- 局部变量:类的方法中的变量
数组
数组是存储在堆上的对象,可以保存多个同类型变量(非常重要,后续详解)
枚举
自jdk1.5引入了新的类型-枚举,给开发带来了极大的方便,可减少代码中bug,提高代码可读性。枚举可单独声明或声明在类里。方法、变量、构造䁋瞳也可在枚举中定义
关键字(一定要牢记)
类别 | 关键字 | 说明 |
访问控制 | private | 私有的 |
protected | 受保护的 | |
public | 公共的 | |
default | 默认 | |
类、方法和变量修饰符 | abstract | 声明抽象 |
class | 类 | |
extends | 继承父类 | |
final | 最终值,不可改变的 | |
implements | 实现(接口) | |
interface | 接口 | |
native | 本地,原生方法(非 Java 实现) | |
new | 创建新实例,实例化新对象 | |
static | 静态 | |
strictfp | 严格,精准 | |
synchronized | 线程,同步 | |
transient | 短暂 | |
volatile | 易失 | |
程序控制语句 | break | 跳出循环 |
case | 定义一个值以供 switch 选择 | |
continue | 继续 | |
default | 默认 | |
do | 运行 | |
else | 否则 | |
for | 循环 | |
if | 判断如果 | |
instanceof | 实例 | |
return | 返回 | |
switch | 根据值选择执行 | |
while | 循环 | |
错误处理 | assert | 断言表达式是否为真 |
catch | 捕捉异常 | |
finally | 有没有异常都执行 | |
throw | 抛出一个异常对象 | |
throws | 声明一个异常可能被抛出 | |
try | 捕获异常 | |
包相关 | import | 引入 |
package | 包 | |
基本类型 | boolean | 布尔型 |
byte | 字节型 | |
char | 字符型 | |
double | 双精度浮点 | |
float | 单精度浮点 | |
int | 整型 | |
long | 长整型 | |
short | 短整型 | |
变量引用 | super | 父类,超类 |
this | 本类 | |
void | 无返回值 | |
保留关键字 | goto | 是关键字,但不能使用 |
const | 是关键字,但不能使用 | |
null | 空 |
关键字不能用于常量、变量、和任何标识符名称(敲黑板,划重点!!!)
空白行
空白行或有注释的行, Java编译器 会忽略掉。
继承
一个类可以由其他类派生,如果要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么就可以用新创建的类继承该类,利用继承可以重用已存在的类的方法和属性,不用重写代码。被继承的类称为超类,派生类称为子类。例如: 人(Person) 属性:身高、年龄、体重。动作:走路、跑步。 派生类:老师(Teacher): 除了具备Person的属性和动作外,可以扩展自己的动作:讲课。
接口
接口为 Java 实现多态而存在。
有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是Java不支持 多重继承 。有了接口,便得到多重继承的效果。
接口(interface)是抽像方法和常量值的定义的集合。
本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。