Java 基础语法
Java 是一种面向对象编程的语言, 至于什么是面向对象编程? 请点击左侧链接加以了解.
我们还是以一段 Hello World 的代码开始来开始这段教程:
public class HelloWorld { public static void main(String[] args) { /** * 这里是块注释 */ System.out.println("Hello World"); //这里是行注释1, 下面是空行 //这里是行注释2 } }
通过之前的学习, 运行这段代码, 我们知道这段代码输出了一串 Hello World .
但是明明写了这么多, 为何却只输出了一行 Hello World ? 不要急, 我们慢慢来解析:
因为 Java 是面向对象的语言, 所谓万物皆对象是也, 首先我们需要定义一个类:
public class HelloWorld { ... }
这里 HelloWorld 就是一个类, class 作为 Java 语言里的关键词, 表示如果我们按照这种写法, 我们就定义了一个类. public 也是 Java 的关键词之一, 这里用于修饰 class 表示 当下定义这个 HelloWorld 类是公开的, 是可以随意访问的. 与之对应的是 protected (保护)和 private (私有), 这种修饰符都是用来限定访问的.
然后我们我们在类里定义了一个静态方法:
public static void main(String[] args) { ... }
这段代码里 main 就是一个方法名了, main 是约定好的方法, 它指明了一个程序的入口. 定义了这个方法, java 在执行的时候就知道要从哪里开始了. 这里的 public 同样作为公开修饰符, 表示 main 方法是可以在外部访问的. void 是返回值类型, 表示 main 这个方法返回了哪种类型的数据, void 就是表示啥也不返回. 一个方法可以返回的值可以是 数字, 字符串, 数组, 对象等等. String[] args 是 main 的参数, String[] 是字符串数组(一种多个字符串的合集), 参数决定了外部可以提供给方法内部的变化.
然后我们定义了 main 这个方法的详情:
/** * 这里是块注释 */ System.out.println("Hello World"); //这里是行注释1, 下面是空行 //这里是行注释2
这里就是 main 这个方法的主体了, 看起来有一大段, 但是实际起到效果的 也就这一句 System.out.println("Hello World"); , System.out.println 表示要输出的内容, 输出完成后会换行, 输出的内容则是 "Hello World", 这里是一种特殊的标记, 表示我们输出的 Hello World 是字符, 所以用双引号 " 将其包起来. 我们还可以输出 110, 3.141592 这种数字类型.
我们同时还注意到了, 代码中包含了这样的部分
/** * 这里是块注释 */
//这里是行注释1, 下面是空行 //这里是行注释2
/* 开始到 */ 结束的, 我们称之为块注释, 块注释可以跨行
以 // 开始到本行尾的结束的, 我们称之为行注释, 望文生义行注释只对本行有效, 不可跨行.
注释通常是为了记录下写这段代码的时候你是如何想的, 或者解释这段代码是如何工作的, 主要为了记忆与便于开发人员理解这段代码, 或者提醒开发者当初为什么使用这种方案解决当下的问题, 注释在 java 执行的过程中是完全被忽略的, 被忽略的意思是不参与任何执行计算.
而出现在 行注释1 和 行注释2 之间的空行, 空行在 java 执行的过程中是会完全被忽略的.
注意: java 语言是区分大小写的, 这也就是
Java 的字词: 关键字, 修饰符, 标识符
Java 中的关键词
关键词又叫保留词, 是编程语言中的一类特殊词汇, 他们具备了特殊的意义和用途, 因此不能用作自身作用以外的用途, 以下是 Java 中的关键词及其用途.
关键字 | 说明 |
---|---|
private | 私有的 |
protected | 受保护的 |
public | 公共的 |
default | 默认的(修饰符) 或者 switch 的默认分支 |
abstract | 抽象的 |
class | 类 |
extends | 继承 |
static | 静态的 |
final | 最终的, 不可改变的 |
implements | 实现接口 |
interface | 接口 |
super | 父类的, 超类的 |
this | 当前类的 |
new | 初始化对象 |
instanceof | A instanceof B, A 是否是 B 的实例 |
if | 如果, 条件 |
else | 否则, 与 if 配合 |
switch | 开启匹配 |
case | 匹配 switch 的值, 建立一个分支 |
for | 计量循环 |
while | 条件循环 |
do | 执行, 通常与 while 配合 |
continue | 跳过当前循环流程, 进入下一个循环 |
break | 跳出循环或分支 |
assert | 断言表达式是否为真 |
try | 尝试执行(会抛出异常的代码) |
catch | 捕捉异常 |
finally | 有没有异常都执行 |
throw | 抛出一个异常对象 |
throws | 声明一个异常可能被抛出 |
import | 引入 |
package | 包 |
return | 通过执行一个方法得到一个值 |
boolean | 布尔型 |
true | 布尔真 |
false | 布尔假 |
byte | 字节型 |
char | 字符型 |
double | 双精度浮点 |
float | 单精度浮点 |
int | 整型 |
long | 长整型 |
short | 短整型 |
void | 无返回值 |
null | 空 |
enum | 枚举型, 1.5 后新增 |
synchronized | 用于多线程的同步锁 |
volatile | 用于多线程的线程共享 |
strictfp | strict float point 严格(精确)浮点 |
transient | 暂时的, 相对于序列化而言的, 用此关键词修复的属性将不会被序列化. |
native | 本地实现, 通过JNI调用其他语言实现 |
goto | 保留关键字,但不能使用 |
const | 保留关键字,但不能使用 |
Java 中的修饰符
修饰符是一类用来给类中的类, 属性, 方法等提供额外的限定的特殊的关键词, 修饰符通常分为两类:
- 访问控制修饰符: default, public , protected, private
- 特殊修饰符: final, abstract, static, synchronized
Java 中的标识符
标识符号就是除关键词外, 凡是自己命名的词汇都称为标识符
例如, 对于常量, 变量, 方法, 语句块, 类, 项目等都需要一个名字, 这些我们都统统称为标识符
标识符虽然可以自己命名, 但是要符合以下要求:
- 标识符由字母、数字、_(下划线)、$ 组成,但是不能使用数字做开头
- 不能使用 Java 中的关键词
- 标识符是大小写敏感的: 即 Hello , hello, heLLo 是三个不同的标识符
一些合法的的标识符举例:
Hello, _, $, $usd, loveYou, love321, 虽然不建议, 但是因为区分大小写 Public 这样的标识符并不会被识别为关键字.
一些不合法的标识符举例:
21yi, -ok, public
标识符除了有要求之外, 还有规范, 规范不是强制性的, 但是是一种良好的编码实践, 毕竟大家都统一起来, 维护起来更加容易:
- 包名全部由小写字母组成, 如 com.yi21.hello
- 类名采用完整的英文描述符, 所有单词的第一个字母大写, 如 HelloWorld, MachineFactory
- 类的属性以一个小写字母开头
- 等等
有了以上就是 Java 的语法基础, 接下我们来了解一下 Java 的变量