0、前言
在前面第3、4章节,我们已经见过Java程序是怎么写的。下面将详细解析程序代码中的一些语法内容。章节链接如下:
1、作用域说明
在定义类、方法、变量、常量时,会遇到几个关键字:public、private、protected、default。它们主要用于标记对应事物的作用域。总结如下表:
类内部 | 本包 | 子类 | 外部包 | |
public | ok | ok | ok | ok |
protected | ok | ok | ok | no |
default | ok | ok | no | no |
private | ok | no | no | no |
注意:
default 修饰符是Java 8 开始引入,用于修饰接口(interface)中方法的。Java 8之前主要用于switch语句默认处理的修饰。
如果一个类、方法、常量不写修饰符,权限和default一致。即类内部、本包内的类可以调用。在书写规范上,一般都是要求写public,除非有封装要求,不暴露信息给外部调用程序。
2、赋值
在计算机上,将一个数据(可以是值,也可以是内存地址)从一个地方,传递到另外一个地方的处理过程,称为赋值。如下代码:
int x = 123; int y = 2*x+3;
代码中第一行意思是,将123这个整数赋值给变量x。
代码中第二行意思是,将2*x+3 这个结果赋值给变量y。
3、样例程序
// 一个 Java 类
public class DataTester {
//成员变量(属性)
public String param1 = "aaaa";
//常量
public static final String PARAM_2 = "bbbb";
//程序入口
public static void main(String[] args) {
//局部变量
int x = 123;
int y = 2*x+3;
System.out.println("y="+y);
//创建一个 类型 为 DataTester 的 变量
DataTester d = new DataTester();
System.out.println("param1="+d.param1);
d.param1 = "cccc";
System.out.println("param1="+d.param1);
//常量
System.out.println("PARAM_2="+DataTester.PARAM_2);
}
}
4、变量
在程序代码中,为了便于记忆和书写,我们会用一些助记符号来写代码。在这一点上,数学代数理论和编程是一致的。比如数学公式,f(x)=2x+3,x是一个变量。在编程上,变量分为 成员变量 和 局部变量。
l 成员变量:指一个类的属性信息。比如:
//成员变量(属性) public String param1 = "aaaa";
上面的 param1 就是类 DataTester 的成员变量。
l 局部变量:指一个方法、程序块中定义的变量。
//局部变量 int x = 123; int y = 2*x+3; //创建一个 类型 为 DataTester 的 变量 DataTester d = new DataTester();
上面的x,y,d三个都是main方法的成员变量。另外,main方法的入口参数args也是局部变量。
5、常量
在编程过程中,我们会遇到一些定值,比如:一周是7天,圆周率是3.14等等。这些编程上的定值,我们一般把它们称为一个常量。常量和变量最大的不同在于,常量是定值,只能赋值一次。常量一般用final关键字修饰,如下图:

在DataTester类中,我们定义了一个常量 PARAM_2 ,它的值是 “bbbb”。我们尝试将它重新赋值,结果编译报错。
本章节结束。