java 代码的基本结构
书写了一个基本结构:
public class Test {
public static void main(String[] args){
// main 函数中书写各项指令
System.out.println("this is a test");
}
}
java 源代码中能出现的单词称为“词法单元” 或 “Token”,从 java 语言基本结构可以看出:
- 每个 java 文件都必须书写一个 java 类 public class 类名{} 且类名和文件名一致
- 在可直接运行的 java 类中,拥有一个叫 main() 的主方法,作为程序的主入口
还可以看出 java 代码其中包含的要素:
● 一些英文单词
● 3 种括号
● 点操作符
● 双引号
● 分号
同人类的语言拥有字母、单词、语句、文章类似,编程语言也是由符号、标识符、指令组成,所以不必把编程语言想象过于神话。有了字母可以组词,多个词语又可以组成文。只是在编程语言中,词语不被叫作“单词”,而是被叫作标识符。
如果将英文和编程语言对应起来就应该是:
● 字母 —— 符号
● 单词 —— 标识符
● 语句 —— 指令
● 文章 —— 程序
标识符与关键字
标识符其就是打上标记帮助识别的符号。在书写标识符时,也有命名规范,就好比给中国人上户口不能用英语名称、数字、违法乱纪的敏感文字词语是一样的,得讲究“规矩规范”。
空白符和注释
有意思的是 java 是一种格式自由的语言,不用遵循特定的缩进格式,不过在每个 Token 间必须出现至少一个空白符,空格键、制表符、换行、换页都可以。不过使用编辑器一个格式化快捷键能把一切都搞定不过多赘述。
注释
注释的作用不过多赘述,主要提到 java 中的三种注释:
- 单行注释 //
- 多行注释 /**/
- 文档注释
单行注释很明显一次注释一行代码了,多行注释也被称为块注释,可以在任何地方出现,甚至是和它要解释的语句放在同一行。
/*
这是一个多行注释,
编译器在编译时会忽略掉它
*/
public class /* 这是类声明 */ HelloWorld {
/* 这是程序的入口点 */
public static void main(String[] /* 方法的参数 */ args) {
System.out.println("Hello, World!"); /* 在控制台上打印一条消息 */
}
}
这里,在/* 和 / 之间的所有内容都会被编译器忽略掉,所以不会影响程序的执行。当然,在语句之间使用注释必然会影响代码的可读性,一般不推荐这样做。
必须要注意的是,多行注释不能嵌套。比如,如下代码试图在一个多行注释中嵌入另一个多行注释。但是,第一个 / 总是会找离它最近的 / 来搭配,于是最后一个 / 就成了非法 Token,导致代码不能通过编译。
文档注释是 Java 中的一种特殊注释,主要用于生成 API 帮助文档,提供给 API 的用户参考。写好代码以及文档注释后,我们可以使用 JDK 中附带的 Javadoc 工具,从程序源代码中抽取类、方法、成员等注释,形成一个和源代码配套的 API 帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,就可以用 Javadoc 同时生成程序的开发文档了。
文档注释是以 / 为开始符号,以 */ 为结尾符号,中间放上文档注释的内容:
/** 这是个文档注释 */
/**
这也是一个
文档注释
*/
/**
* 这是一个更好看的文档注释
* 星号不会影响文档
*/
文档注释中可以加入一些特殊标签,这些标签一般以 @ 开头,后跟一个指定的名字。有些标签是以 {@ 开头,以 } 结束。javadoc 可以识别出这些标签。这些标签有十几种,下面我们只列出来几种常见的:
● @author:标识一个类的作者,一般用于类注释。格式为:@author 描述。
● @version:说明乐利的版本,一般用于类注释。格式为:@version 版本信息。
● @param:说明方法的参数,一般用于方法注释。格式为:@param 参数名 解释。
● @return:说明返回值类型,一般用于方法注释。格式为:@return 解释。
必须要注意的是:文档注释只放在类、接口、成员变量、方法之前,因为 Javadoc 只处理这些地方的文档注释,其它地方的文档注释会被 javadoc 忽略。
如下所示的 JavadocDemo 程序中,就在类和方法之前使用了文档注释。此外,在 main()方法中也添加了文档注释,但是这条注释会被 javadoc 忽略,不会出现在生成的 API 文档中。
/**
* @author Atian
* @version jdk17
*/
public class Hello {
/**
* @param str 接受一个字符串为参数
*/
public void sayHello(String str) {
/**
* 输出一条消息
*/
System.out.println("Hello, " + str);
}
}
写好代码后,怎么看 API 文档呢?有三种方式:
● 1)在命令行提示符下,用 javadoc 工具生成(不推荐)
● 2)在 IDEA 下,点击 Tools -> Generate javaDoc…,打开生成 JavaDoc 的对话框(注意:中文文档的 Locale 设置为 zh_CN,命令行参数设置为 -encoding UTF-8 -charset UTF-8,这样才不会乱码),生成 API 文档。然后在浏览器中查看
命名规范
对于编程语言自定义标识符的命名规范可被分为两大类:
● 硬性要求
● 软性要求
硬性要求则是指必须遵守否则无法通过编译的:
- 命名可以包含数字、字母、下划线、$
- 数字不可作为开头
- 大小写敏感
除此以外还有一些软性要求是作为开发人员们约定俗成的行规:
- 首当其冲的就是给标识符取名得见名知意,便于阅读和理解代码,特别要谨慎使用缩写,遵守程序界的公共规范
- 类名使用帕斯卡命名法,首字母大写
- 变量名小写,当有多个单词组合成变量名,则使用驼峰命名法 chineseNewYear
- 常量(不可变的量)名,使用全大写 GENDER
- 包名、工程名全小写
- 方法名与变量名的要求一致,但应当从方法名体现其功能,通常为动词或动宾短语
标识符分类
标识符可以分为两大类:
- 语言已经预定义好的、被这项语言系统占用、有特定含义不可再用于其他地方的称为“关键字”
- 用户自定义