例子来自java编程基础、应用与实例
局部变量在方法内部声明,并且只能在方法内部使用。
局部变量在外层的方法被调用时被分配内存,请求在方法执行完毕后自动释放内存而消亡。
方法中的形式参数就是局部变量的一种。
在使用局部变量的时候必须先对其进行初初始化。
例子:
public class Class8{
public static void main(String[] args){
int a;
System.out.println(a);
}
}
变量a在main()方法内部创建,它是一个局部变量,但还没比被初始化。
如果成员变量违背人为初始化,系统将自动根据其所属类型进行初始化。
基本数据类型变量量系统赋值0,引用型变量赋值null
public class Class9{
int a;//成员变量
int b=100;//成员变量
String c;//成员变量
String d="hello~~";//成员变量
public static void main(String[] args){
Class9 ob=new Class9();
System.out.println(ob.a);
System.out.println(ob.b);
System.out.println(ob.c);
System.out.println(ob.d);
}
}
注意:null 是一个常数,表示未引用任何对象。
public class Class10{
int a;
void setA(int a){
this.a=a;//变量之前有this的是成员变量,没有的是局部变量
}
int getA(){
return a;//这里的a是this.a
}
public static void main(String[] args){
Class10 ob=new Class10();
ob.setA(1000);
System.out.println(ob.a);
System.out.println(ob.getA());
}
}
静态变量与静态方法
static变量是所有对象共有的变量,它可以在不创建对象的情况下,直接被引用
普通变量只有在创建了类的对象后才能被引用
例子:
public class Class12{
static int a;//static变量
int b;//成员变量
public static void main(String[] args){
Class12.a=10;//static变量是所有对象共有的变量,它可以在不创建对象的情况下,直接被引用
Class12 ob1= new Class12();
Class12 ob2= new Class12();
System.out.println(ob1.a);
ob1.a=20;
System.out.println(ob2.a);
ob2.a=30;
System.out.println(Class12.a);
}
}
例子:
public class Class14{
int a;
static void setA(int b){
a=b;
}
public static void main(String args){
Class14.setA(10);
}
}
原因:static方法中调用了非静态变量。a是成员变量。
例子:
public class Class15{
static int a; //static变量
static void hello(){ //static方法
System.out.println("hello~~");
}
static void setA(int b){ //static方法
a=b; //a 是static变量
hello();
}
void printA(){ //在非静态方法中调用static方法和变量
System.out.println(a);
hello();
}
public static void main(String[] args){
Class15.setA(100); //可以写成setA()
Class15 ob=new Class15();
ob.printA();
}
}