什么是变量 ; 变量 , 顾名思义,可以变化的量!
class定义一个类,类中包含属性和方法,
方法外的,类内部的属性被称为成员变量
方法内,声明的变量被称为局部变量;
还有一种特殊的变量被叫做静态变量,用 static 修饰的变量
具体情况来看代码:
public class Variable {
/**
* 成员变量 声明在类的一对大括号内
* 可以使用权限修饰符修饰成员变量
* 有默认初始值 根据其类型确定默认初始值为多少
* 作用域为堆空间 (非static的)
* (static修饰的变量 作用域在方法区中)
* 例如:int 默认 0;
*/
int count;
/**
* static可以修饰成员变量
*/
static int num;
/**
* 局部变量 声明在方法内,方法形参,代码块,构造器形参,构造器内部的变量
* 不可以使用权限修饰符修饰
* 没有默认初始值,在调用局部变量时,必须显式的赋值!
* 作用域为栈空间
*/
public void info(){
int a = 10;
//static int b; static不能修饰局部变量 会变红报错
System.out.println(++a);
System.out.println(count);
}
public void staticNum(){
System.out.println(++num);
System.out.println(++num);
}
public static void main(String[] args) {
/**
* 实例化两个不同的对象分别调用两个方法
*/
Variable v1 = new Variable();
Variable v2 = new Variable();
/**
* 两个实例化对象分别操作的两套成员变量与局部变量
* 所以调用info方法
* 结果为11 0 ; 11 0 ;
*/
v1.info();
v2.info();
System.out.println("***********************");
/**
* 而static静态变量只存在与方法区,两个实例化对象调用的是方法区内同一个静态变量
* 所以这时候的结果就在原来基础上累加
* 结果为 1 2 ; 3 4 ;
*/
v1.staticNum();
v2.staticNum();
}
}
输出结果为:
11
0
11
0
***********************
1
2
3
4
具体说明都在代码文档注释里,这里不在一 一写出!