本节介绍一下java的基础语法,了解java的语法规范、注释、标识符及修饰符相关内容。
1、语法规范
1)大小写敏感:如标识符 Hello 与 hello 是不同的。
2)类名:首字母大写。若类名由若干单词组成,则每个单词的首字母要大写,如 FirstDemo 。
3)方法名:
- 驼峰命名:所有的方法名都以小写字母开头,若方法名含有若干单词,则后面的每个单词首字母大写,如stringDemo。
- 见名知意:根据所写程序的用途和含义起名。
4)源文件名:源文件名必须同类名,否则会编译错误。源文件名的后缀为 .java(注意区别源文件和字节码文件,字节码文件后缀为 .class,不了解的可以看我的上一篇文章-运行java)
5)主方法(main方法)入口:public static void main(String[] args) 方法是所有的 Java 程序的入口,都是从main方法处开始执行。
2、注释
2.1 三种注释方式
单行注释://
多行注释:/* */
文档注释:/** */ (一般用在类、方法和变量上面,用来描述其作用)
注:为了美观,一般多行和文本注释的首行和尾行不写注释信息。
2.2 文档注释拓展(了解)
可以通过 Javadoc 命令把文档注释中的内容生成帮助文档,并输出到 HTML 文件中,方便记录程序信息。Javadoc 工具可以识别文档注释中的一些特殊标签,这些标签一般以@开头,后跟一个指定的名字,有的也以{@开头,以}结束。如:
@author 标识一个类的作者,一般用于类注释
@exception 可能抛出异常的说明,一般用于方法注释
@param 说明一个方法的参数,一般用于方法注释
@return 说明返回值类型,一般用于方法注释,不能出现再构造方法中
@version 指定类的版本,一般用于类注释
{@link} 插入一个到另一个主题的链接
2.3 小练习:生成API帮助文档(了解)
有兴趣的可以尝试,体会一下javadoc生成帮助文档的过程。新建一个文本文件,输入下列代码:
/**
* @author zhengyquan
* @version jdk1.8.0
*/
public class Test{
/**
* 求输入两个参数范围以内整数的和
* @param n 接收的第一个参数,范围起点
* @param m 接收的第二个参数,范围终点
* @return 两个参数范围以内整数的和
*/
public int add(int n, int m) {
int sum = 0;
for (int i = n; i <= m; i++) {
sum = sum + i;
}
return sum;
}
}
ctrl+s保存后将文件重命名为 Test.java,win+R 打开 cmd 窗口,输入javadoc -author -version Test.java命令,若报'错误: 编码GBK的不可映射字符',这是因为没有考虑编码格式的问题,注释中有汉字可能会乱码,添加上格式即可。输入如下解决:
javadoc -encoding UTF-8 -charset UTF-8 -author -version Test.java
完成后找到同目录下生成的一个 Test.html 文档,打开即可看到自己创建的帮助文档的信息。
完整操作如下所示:
注:可在 cmd(命令提示符)中输入javadoc -help查看 Javadoc 的用法和选项。
3、标识符
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
3.1 命名规则
- 以字母、美元符($)、或者下划线 _ 开始。
- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线 _ 或数字的任何字符组合,不能是其他字符。
- 关键字(保留字)不能用作标识符。
- 大小写敏感。
eg:
合法:_age、$salary、abc
非法:123abc、-salary
4、修饰符
用来定义类、方法或变量,通常放在语句的最前端。
pass:该部分在刚开始学时不用过分深究,随着后面学习的深入会理解的更加清晰。
4.1 访问控制
default(默认访问):在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
public(公共访问权限):对所有类可见。
protected(子类访问权限):对同一包内的任何其它类和不同包中的子类可见,不能修饰接口中的成员变量和成员方法。
注意:在不同包中的子类只能通过该子类访问父类中 protected 成员,通过其它子类或父类都无法访问。
private(当前类访问权限):在同一类内可见,只能被所属类访问。
4.2 非访问控制
final:用来修饰类、方法和变量。
- 修饰的类不能够被继承,表示最终的类。final 修饰的类有很多,如八大基本数据类型包装类和 String 类,也是不可变类(当创建它们的实例后,其实例的实例变量不可改变)
- 修饰的方法不能被继承类重新定义。构造方法不能使用 final 修饰。
- 修饰的变量为常量,不可修改(只能被赋值一次)。
abstract: 用来创建抽象类、抽象方法。
static:用来创建类方法和类变量,类方法不能访问的实例变量。
synchronized: 修饰的方法、代码块在同一时间只能被一个线程访问,不能修饰构造器、成员变量等。
一图以蔽之,如下: