在第一个Java程序中已经提到一些基本的知识点,这里再补充几点。
1. 成员变量和局部变量的区别
-
成员变量:成员变量定义在类中,默认初始值为0,定义时可以不初始化,在整个类中可见。
-
局部变量:局部变量定义在方法中,无默认初始值,定义变量时要初始化,只在方法中可见。
-
变量重名:在不同的方法中,局部变量可以重名。局部变量和成员变量可以重名,并且重名时局部变量优先级高。
2. 静态成员
静态成员用修饰符static修饰,使用 static 可以修饰成员变量、方法和代码块。被类的所有对象所共享。静态变量也叫类变量,一旦初始化,其值就不能再改变。静态成员可以使用类名直接访问,也可以使用对象名进行访问。推荐使用类名直接访问。
3. 初始化块
我们知道构造方法在创建类对象时可以初始化成员变量,Java中,也可以用初始化块进行成员变量的初始化。格式如下:
public class className{ Type Var1; Type Var2; static Type Var3; …… //使用初始化块初始化成员变量 { var1=value1; var2=value2; } //使用初始化块初始化静态成员变量 static{ var3=value3; } …… }
在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用static修饰初始化块,就称为静态初始化块。需要特别注意:静态初始化块只在类加载时执行,且只会执行一次(静态变量初始化后值不能再改变),同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
4. foreach循环
foreach循环是一种加强的for循环,可以在不使用下标的情况下遍历数组。格式如下:
for(声明语句:数组名){ …… }
比如现有一个int型数组int[] array={0,1,2,3},想要依次打印数组元素,则可以按如下代码实现:
for(int x:array){ System.out.println(x); }