Java 程序设计基础

要想编写规范、可读性高的 Java 程序,就必须熟练掌握 Java 基本语法。基本语法是所有编程语言都必须掌握的基础知识,也是整个程序代码不可缺少的重要部分。随后的章节开始学习 Java 的基础语法部分,主要分为 4 部分内容:数据类型,变(常)量,运算符,以及控制流程语句,这也是构成 Java 程序最基础的 4 个部分,敲黑板!

其中,数据类型和运算符不仅定义了语言的规范,还决定了可以执行什么样的操作;变量是用来存储指定类型的数据;而控制流程根据用户的输入决定程序要进入什么流程,即要做什么?如何做?


在开始正式的学习之前,我们需要先了解一些 Java 基本语法最最基本的定义:

Java 标识符 & 关键字

任何一种计算机语言都离不开标识符和关键字,本小节将详细介绍 Java 的标识符、关键字(保留字)。

标识符

所有编程语言中的 标识符,都是为 变量、方法、类、对象以及文件、工程 等进行命名的,可以有一个或多个字符。

标识符构成规则

Java 语言规定的,标识符的构成规则如下:

  1. 标识符可以由任意多的 字母(AZ 和 az),数字(0~9),下划线(_),dollar 符($),Unicode 字符集中符号(大于 0xC0 )的所有符号组合构成。注意不包含空格!!!
  2. 必须以字母,dollar 符以及下划线开头,不可以是数字。
  3. 运算符,关键字(保留字)以及标准方法名不可以作为标识符。

注意:标识符中可以包含 关键字 & 标准方法名。


标识符命名规范

一个良好的编程习惯要求命名标识符时,应赋予它 ”意义“(非强制)。

  1. 见名知义:代码命名神奇 –> CodeIF
  2. 包名全部小写;
  3. 类名各单词首字母大写(大驼峰命名法)
  4. 变量名,方法,类的实例:第一个单词字母小写,其它单词首字母大写(小驼峰命名法);
  5. 常量名全部大写;
  6. 参数的名尽量使用一个单词的情况下,命名明确;
  7. 数组命名使用:”类型[] 数组名” 的形式。

驼峰命名法:

小驼峰式(little camel-case)–> 第一个单词首字母小写,后面其他单词首字母大写。

大驼峰式(big camel-case)–> 每个单词的第一个字母都大写;


关键字

关键字(或者保留字)是语言中已经被赋予了特殊含义的专有单词,Java 编译器有特殊的意义,不能在程序中做其他目的使用。

保留字是为 Java 预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。

Java 语言目前定义了 51 个关键字,这些关键字不能作为标识符使用:

  1. 数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
  2. 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
  3. 修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
  4. 动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
  5. 保留字:true、false、null、goto、const。

Java 注释

注释不是编程语句,编译时会被编译器忽略。

Java 支持以下三种注释方式:

单行注释

以双斜杠 “//” 标识,只能注释一行内容:

1
2
3
4
5
6
public class HelloJava {
public static void main(String[] args) {
// 这是一个单行注释
System.out.println("Hello, Java World!");
}
}

多行注释

包含在 “/*” 和 “*/” 之间,能注释很多行的内容,也成为 块注释

为了可读性(美观)比较好,一般首行和尾行不写注释信息:

1
2
3
4
5
6
7
8
9
public class HelloJava {
/**
* 这是一个多行注释
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hello, Java World!");
}
}

注意:多行注释可以嵌套单行注释,但是不能嵌套多行注释和文档注释


文档注释

包含在 “/**”“*/” 之间,也能注释多行内容,只在类、接口、方法、成员变量上面,用来描述其作用。

注释后,鼠标放在类和方法上面会自动显示出我们注释的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* Project Name: HelloJava
* Class Name: HelloJava
* Created By: xxxxxx
* Created At: xxxx年xx月xx日 上午3:31:44
* E-Mail:
* @Version
*
*/
public class HelloJava {

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hello, Java World!");
}

}

注意:文档注释能嵌套单行注释,但是不能嵌套多行注释和文档注释

Java 平台提供了 javadoc 工具,使用 Java 源代码中的文档注释,来生成 API 说明文档。


语句

Java 程序中,语句是最小的组成单位,每个语句必须使用分号作为结束符。

除此之外,Java 对语句无任何其他限制,开发人员可以很随意地用符合自己风格的方式编写语句。

1 –> 一个语句放在多行

1
2
3
String str = "Apple "
+"Banner "+"Pear "
+" Orange";

由于 Java 使用分号作为语句的结束符,所以上面的 3 行代码会被 Java 认为是一条语句,因为这 3 行中只有一个分号。但是,我们不推荐使用这种方式来编写语句(不符合编码规范)。

2 –> 多个语句放在一行

使用分号作为分隔符,将多个语句放在一行来编写也是允许的:

1
int a=0,b,c;b=a+10;b++;c=a*b;System.out.println(c);

但也不这样推荐。

3 –> 空语句

所谓空语句(Empty Statement),它在程序中什么都不做,也不包含具有实际性的语句。

空语句的语法格式如下:

1
; // 其实就是一个分号

表达式

表达式是由变量、操作符以及方法调用所构成的结构。在表达式后面添加分号,就成了独立的表达式语句。

样例:

1
2
int i = 5;  
System.out.println(5);

注意: ; 也是一个完整的表达式,即使没有任何变量、操作符以及方法调用。

1
2
3
4
5
6
7
public class HelloWorld {
public static void main(String[] args) {
//一个空;也是一个表达式
;
;
}
}

语句块

{ 开始 到对应的 } 结束,即为一个语句块,也称为:复合语句,是很多个语句的组合。

1
2
3
4
5
6
7
8
9
public class HelloWorld { //类对应的块
public static void main(String[] args) { //主方法对应的块
System.out.println("abc");
}

{ // 这是正确的语法
System.out.println("this is a test");
}
}

Java 编码规范

  1. 程序最开始编写导入包和类语句,即 import 语句,import 语句可以有多行,编写完 import 语句后空一行;
  2. 定义 public 类,顶格书写。类的主体左括号 “{” 不换行书写,右括号 “}” 顶格书写;
  3. 定义 public 类中的变量,缩进书写;
  4. 定义方法用缩进书写,方法的左括号 “{” 不换行书写,右括号 “}” 和方法首行第一个字符对齐;方法体要再次缩进书写,最后一个变量定义和第一个方法定义之间、方法和方法之间最好空一行;
  5. 方法名和紧跟在其后的左括号 “(” 无空格,该左括号和其后的标识符之间无空格。多个参数之间的逗号和前一个参数紧靠,与后一个参数空一格。
  6. 在一行内只写一个语句,并采用空格、空行来保证语句容易阅读。

关于编码规范,可以以权威公司(Google 等)编码规范为参考。


Java 包名(Package)命名规范

每个 Java 开发人员都可以开发自己的 Java 项目,Coder 可以为 Java 项目中的包定义各种各样满足命名规范定义的名字。

但是,我们需要尽可能保障每个 Java Package 命名的唯一性,尤其是在你上传编写好的 Java 库到第三方平台供他人使用时,这尤为重要(第三方平台一般会进行唯一性检验,成功后才允许你上传,否则认为包名冲突了)。

这就要求我们,尽可能的在 Package 命名时:

为自己定义的包名前加上唯一的前缀

1 –> 公司项目命名

一般公司项目中,包名的命名规则可定义为如下:

com.公司名.项目名.模块名

2 –> 团队项目

一般公司项目中,包名的命名规则可定义为如下:

team.公司名.项目名.模块名

3 –> 个人项目命名

那么,我们的个人项目又怎么命名呢?

indi(individual)–>

个人发起,但非自己独自完成的项目(可公开或私有项目),但 Copyright 主要属于发起者。

命名规则如下:

indi.发起者名.项目名.模块名

pers(personal)–>

个人发起,独自完成,可分享的项目,Copyright 属于个人。

命名规则如下:

pers.个人名.项目名.模块名

人发起,独自完成,非公开的私人使用的项目,Copyright 属于个人。

命名规则如下:

priv.个人名.项目名.模块名


Author

Waldeinsamkeit

Posted on

2017-10-12

Updated on

2021-01-11

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.