整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量。
局部变量(local variable)
方法或语句块内部定义的变量,方法内部定义好变量后就是局部变量,生命周期是从声明位置开始到到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。
javapackage com.Ponfey;
/**
* @author :xiaoshuai.zhu
* @date:2020/9/18 14:07
*/
public class Study {
public static void main(String[] args){ //main是主函数,从这里开始执行
int age; //声明一个变量,但是没有给这个age赋值
age = 23; //给age赋值
int salary = 3000; //放到一起也没有问题
int zhuxs = 23;
System.out.println(zhuxs);
}
}
运行实例中 int age 定义age就是一个局部变量,这个变量只能在main方法中使用,如果是在语句块里定义的,仅限于{}中有效,在{}外面是使用不了的:
package com.Ponfey;
/**
* @author :xiaoshuai.zhu
* @date:2020/9/18 14:07
*/
public class Study {
public static void main(String[] args){ //main是主函数,从这里开始执行
{
int age; //声明一个变量,但是没有给这个age赋值
}
For Example_01:
public void test() {
int i;
int j = i+5 ; // 编译出错,变量i只声明没有被初始化
}
public void test() {
int i;
i=10;
int j = i+5 ; // 编译正确
}
成员变量(也叫实例变量 member variable)
方法外部、类的内部定义的变量,精确来讲,没有被static来修饰,从属于对象,生命周期伴随对象始终。如果不自行初始化,它会自动初始化成该类型的默认初始值,也就是说对象的成员变量。
public class Study {
int a; //成员变量,成员变量和局部变量关于初始化有个区别:成员变量会自行初始化,没赋值会进行自己赋值(按规则),默认赋予0,当然也可以手动赋值 int a=23
静态变量(类变量 static variable)
使用static定义,从属于类,生命周期伴随类始终,类在它就在,类不在它也就不在,从类加载到卸载,如果不自行初始化,与成员变量相同会自动初始化成该类型的默认初始值。
public class Study {
static int size; //静态变量,从属于类