java变量类型:
静态变量(类变量) static String s;
实例变量 String s ;
局部变量 public void method(){
int i=0;
}
局部变量在方法、构造方法中被声明,没有访问修饰符,在方法、构造方法执行的时候被创建,当方法执行结束时销毁,与方法共存亡,它没有默认值,必须要初始化,作用域只限方法内部。局部变量是在栈上分配的。
实例变量在类中,方法、构造方法之外声明,可被访问修饰符修饰,当类被实例化,实例变量的值就确定,与实例共存亡,具有默认值,可在构造方法中和声明中指定值
静态变量用static关键字声明,必须在方法与构造方法之外。静态变量在程序开始时被创建,程序结束时被销毁。具有默认值,可在构造方法中和声明中指定值,通过类名.变量名来访问。用public static final声明时,变量名称用大写。静态变量被所有的对象共享,操作的都是同一个内存
常量是指声明为public/private,final和static类型的变量。初始化后无法改变值
区别:
- 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。
- 实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。
例:
public class staticDeal{
//静态成员
public static String staticMember="静态成员";
//普通成员(非静态成员)
public String nonStaticMember="非静态成员";
//静态方法
public static void staticMethod(){
staticMember="静态成员1";
//nonStaticMember="非静态成员1";//在静态方法中无法调用非静态成员
System.out.println("这是静态方法,可直接用类调用:"+staticMember+"\\");
}
//非静态方法
public void nonStaticMethod(){
staticMember="静态成员2";
System.out.println(staticMember);
nonStaticMember="非静态成员2";
staticMethod();
System.out.println("这是非静态方法,无法直接用类调用:"+staticMember+"\\"+nonStaticMember);
}
public static void main(String args[]){
staticDeal s1=new staticDeal();
s1.nonStaticMethod();
//s1.staticMethod();
}
}