类变量(静态变量):独立于方法之外的变量,需用static修饰。
实例变量:独立于方法之外的变量,没有static修饰。
局部变量:类的方法中的变量。
类变量(静态变量)
-
类变量名称一般使用大写字母;
-
其他类要访问静态变量可以通过:ClassName.VariableName的方式访问。
public class Math { final static Double PI = 3.14; public static void main(String[] args) { int a =10; System.out.println(a*PI); } }
实例变量
- 实例变量可以直接通过变量名访问。但是在静态方法以及其他类中,应该使用ObjectReference.VariableName;
- 实例变量有默认值,数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
- 访问修饰符可以修饰实例变量。
public class Emplou{
String name; //实例变量
int salary;//实例变量
public Emplou(String empName){
name = empName;
}
public void setSalary(int empSalary){
salary = empSalary;
}
public void print(){
System.out.println("name:" + name);
System.out.println("salary:" + salary);
}
public static void main(String[] args) {
Emplou emplo = new Emplou("liming");
emplo.setSalary(1000);
emplo.print();
}
}
或者
public class Emplou{
String name; //实例变量
int salary;//实例变量
public Emplou(String empName){
name = empName;
}
public void setSalary(int empSalary){
salary = empSalary;
}
/*public void print(){
System.out.println("name:" + name);
System.out.println("salary:" + salary);
}*/
public static void main(String[] args) {
Emplou emplo = new Emplou("liming");
emplo.setSalary(1000);
System.out.println("name:" +emplo.name);
System.out.println("salary:" +emplo.salary);
//emplo.print();
}
}
运行结果为:
name:liming
salary:1000
Process finished with exit code 0
局部变量
-
访问修饰符不可以用于局部变量;
-
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
public class Math { public void getMath(){ int a = 0; a = a + 2; System.out.println(a); } public static void main(String[] args) { Math math = new Math(); math.getMath(); } }
运行结果:
2