1. Java 程序的构成
- 对象(object):对象是类的一个实例,有状态和行为。
- 类(class):类是一个模板,它描述一类对象的行为和状态。
- 方法(method):方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
- 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
举例 Hello World
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
}
}在这里的 Hello World 中只涉及了类、方法和语句。定义了一个类 HelloWorld,该类的名字与 .java 文件的名字相同(这里源文件名必须和类名相同);main 方法是程序的入口(所有的Java 程序由
public static void main(String[] args)
方法开始执行);打印”这个功能是由一个语句实现,即:System.out.println("Hello World!")
;
2. Java 关键字
目前共有50个Java关键字,如下,其中"const"和"goto"这两个关键字在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 浮点数比较使用严格的规则 参见Java 运算符:1.算术运算符
- super 表示基类
- switch 选择语句
- synchronized 表示同一时间只能由一个线程访问的代码块
- this 表示调用当前实例或者调用另一个构造函数
- throw 抛出异常
- throws 定义方法可能抛出的异常
- transient 修饰不要序列化的字段
- try 表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码
- void 标记方法不返回任何值
- volatile 标记字段可能会被多个线程同时访问,而不做同步
- while while循环
3. Java 标识符
标识符是用来给类、对象、方法、变量、接口和自定义数据类型命名的。
注意事项:
- Java 标识符由数字,字母A-Z或者a-z和下划线_,美元符号$组成。
- 所有的标识符都应该以字母A-Z或者a-z,美元符$、或者下划线_开始,首位不能是数字。
- 关键字不能用作标识符。
- 标识符是区分大小写的。
一些约定俗成的命名规则:
- 类和接口名: 每个字的首字母大写,含有大小写。例如,
MyClass
,HelloWorld
,Time
等。- 方法名: 首字符小写,其余的首字母大写,含大小写。尽量少用下划线。例如,
myName
,setTime
等。- 常量名: 基本数据类型的常量名使用全部大写字母,字与字之间用下划线分隔。对象常量 可大小混写。例如,SIZE_NAME。
- 变量名: 可大小写混写,首字符小写,字间分隔符用字的首字母大写。不用下划线,少用美元符号。给变量命名是尽量做到见名知意。
- 包名: 全部小写,连续的单词只是简单地连接起来,不使用下划线。
- 命名过程中尽量做到见名知意,方便后期查看和修改代码,也方便其他人员的阅读。
- 更多java代码规范,参见:Google Java 编程风格指南。
4. Java 修饰符
修饰符用来定义类、方法或者变量,通常放在语句的最前端。主要有两类修饰符:
- 访问控制修饰符 : default, public, protected, private
- 非访问控制修饰符 : final, abstract, strictfp
更多参见:Java 修饰符。
5. 常量和变量
5-1. 变量
变量的概念实际上来自于面向过程的编程语言。在Java中,所谓的变量实际上是基本类型 (premitive type)。Java语言是一种强类型的语言,所以变量在使用以前必须首先声明。
参见动态语言/静态语言和强类型语言/弱类型语言(感觉是因为Java是静态语言才对)。Java 中的变量类型如下:
更多参见:Java 基本数据类型。
Java中主要有如下几种类型的变量:
- 局部变量
- 类变量(静态变量)
- 成员变量(非静态变量)
更多参见:Java 变量类型。
5-2. 常量
常量的值是不能被修改的。常量的语法格式和变量类似,只需要在变量的语法格式前面添加关键字
final
即可。在Java编码规范中,要求常量名必须大写。final 用于声明属性(常量),方法和类,分别表示属性一旦被分配内存空间就必须初始化, 它的含义是“这是无法改变的”或者“终态的”。java 字符串常量
和其他语言一样,Java的字符串常量也是包含在两个引号之间的字符序列。字符串常量和字符常量都可以包含任何Unicode字符。
Java语言支持一些特殊的转义字符序列。
6. 注释
一般在 Java 里有三种注释:
- 行注释
//
:只注释一行- 段注释
/*...*/
:注释若干行- 文档注释
/**...*/
:注释若干行,并写入 javadoc 文档 (javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。javadoc命令是用来生成自己API文档的,使用方式:在dos中在目标文件所在目录输入javadoc +文件名.java。)- 更多java代码规范,参见:Google Java 编程风格指南。
7. Java 的继承和派生
7-1. 继承
在Java中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(subclass)。
- 更多参见:Java 继承。
7-2. 接口
在Java中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。。
- 更多参见:Java 多态(接口)。
参考链接
- 菜鸟教程:Java 基础语法
- 菜鸟教程:java 基本数据类型
- 实验楼:Java编程语言(新版)