标识符和编程规范
[toc]
一. Java 标识符
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
关于 Java 标识符,有以下几点需要注意:
- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
- 关键字不能用作标识符. (关键字就是Java有特定意义的名字,下面会列出。)
- 标识符是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
- 合法标识符举例:age、$salary、_value、__1_value、sayHelloWorld、SayHello
- 非法标识符举例:123abc、-salary
说明,一般命名使用大小写的字母就可以了。偶尔会用到数字作为结尾。
二. 命名规则
首先要求程序中的各个要素都遵守命名规则,然后在编码中严格按照编码格式编写代码。命名规则包括以下几点。
2.1 包(package)的命名规则
包(package)的名称由一个小写字母序列组成。比如常见的方式:groupId + artifactId+ functionName
groupId: 一般比如机构 org.apache , org.springframework, 或者公司 com.microsoft.
artifactId: 就是项目的名字,可以一层到两层。开源的机构有很多项目,一般一个项目就有一个名字,同时作为包名。
比如 org.springframework.boot
functionName: 比如名字是controller(控制器),还是repository(数据层),这些后面代码看看就明白了。
说明:本项目的报名采用了汉字方式,这是不得已,为了方便大家阅读学习。实际项目中必须使用小写字母。
2.2 类(class)的命名规则
类(class)的名称最好由大写字母开头,其他字母都由小写的单词组成。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyEasyJavaBook 。
注意:源文件名必须和类名相同。文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。源文件就是新建的类文件,新建好后,手工修改类名与文件名不一致,是错误的。
2.3 方法的命名规则
所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
2.4 变量的命名规则
所有的变量名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
类的实例的名称变量,一般与类名相同,首字母改为小写。
2.5 常量的命名规则
常量的名称都大写,并且指出完整含义,让人一眼看明白这个变量的意思最好。常量后面会讲。
2.6 参数的命名规则
所有的参数都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。参数后面会讲。
2.7 数组的命名规则
数组的命名使用“类型[] 数组名”的形式,以小写字母开头。数组后面会讲。
所有的 Java 程序由 public static void main(String[] args) 方法开始执行。main方法中的参数形式就是一个字符串数组。
以下NameRules为命名规则示例:
import a01.Java语言核心技术.c02.基础概念和语法.s02.第一个类和对象.Book;
import java.time.LocalDateTime;
import java.util.Date;
public class NameRules { //类的命名,大写字母开头,多个字母,后面的字母同样大写字母开头。
final static double CIRCLE_PI = 3.1415926; //定义了一个常量,圆周率。常量的命名都是大写字母,表明含义。
String variableDefinitionWay; //变量的命名规则。以小写字母开头。
//方法的命名规则, 以及参数的命名规则。
public void functionDefinitionWay(String argDefinitionWay) {
System.out.println("方法以小写字母开头。");
System.out.println("参数以小写字母开头。");
}
public static void main(String[] args) {
System.out.println("测试import,当前时间:" + new Date());
System.out.println("测试import,当前时间(新方式):" + LocalDateTime.now());
Book bookHongLouMeng = new Book();//有时候变量名,实例名命名按照需要,定义的有意义,而不需要额外注释。
System.out.println("测试import,打印当前对象的内存地址:" + bookHongLouMeng);
}
}
三 编码格式
编码格式规定如下:
- 程序最开始编写导入包和类语句,即 import 语句。import 语句可以有多行,编写完 import 语句后空一行。
- 定义 public 类,顶格书写。类的主体左括号“{”不换行书写,右括号“}”顶格书写。
- 定义 public 类中的变量,缩进书写。
- 定义方法用缩进书写,方法的左括号“{”不换行书写,右括号“}”和方法首行第一个字符对齐。方法体要再次缩进书写,最后一个变量定义和第一个方法定义之间、方法和方法之间最好空一行。
提示:在单一的语句后有“;”,在一对括号“{}“之外无“;”。方法调用名和紧跟在其后的左括号“(”无空格,该左括号和其后的标识符之间无空格。多个参数之间的逗号和前一个参数紧靠,与后一个参数空一格。
编程规范是对编程的一种约定,主要作用是增强代码的可读性和可维护性,便于代码重用。
一般在手工敲代码的时候,就有意识的编写,即使没用Reformat Code功能,代码也基本保持良好风格。
继续下面内容将提供示例讲解格式规范。
四 代码美化
当代码有点杂乱时,需要美化。可以直接使用开发工具的 《Code》菜单 ,《Reformat Code》 功能 。默认快捷键: Ctrl+Alt+L
以下CodingSpecification代码需要美化,配合标题五撤销和重做的快捷方式,快速查看掌握编码格式的要点:
import a01.Java语言核心技术.c02.基础概念和语法.s02.第一个类和对象.Book;
public class CodingSpecification{
String variable;//注意观察,变量的格式与空格。
public void add(int a,int b){
System.out.println("注意观察,参数的格式与空格。");
}
public static void main(String[] args){
System.out.println("使用开发工具的格式化代码功能,菜单Code-->Reformat Code功能。快捷键Ctrl+Alt+L");
System.out.println("注意观察,变量的格式与空格。");
Book book1=new Book();
System.out.println("保持一个屏幕的合适的宽度--------------------" +
"保持一个屏幕的合适的宽度--------------------" +
"保持一个屏幕的合适的宽度--------------------");
}
}
五 撤销和重做
在IDEA开发工具的《Edit》菜单,有一个Undo xxx 和 Redo xxx功能。作用就是撤销刚刚的一个操作。重做刚刚的操作。不同的操作,xxx代表那个操作名字。
快捷方式分别是 :
Undo撤销:Ctrl+Z
Redo重做:Ctrl + Shift + Z
配合刚刚的格式化工具,来回切换查看变化内容。
部分快捷键可能和系统里的其它软件的快捷键冲突,关闭其它软件即可。
六 Java 关键字
下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称。保留字有个大概印象。后面慢慢学。
关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。
在开发工具中,当你命名时使用了关键字,会有红色的报错。
类别 | 关键字 | 说明 |
---|---|---|
访问控制 | 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最简单易懂的零基础入门,答疑解惑,关注点赞github
开源:https://github.com/BradYan/easy-java