Java 中静态变量和实例变量区别
1、静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
2、实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。
package Test;
/*
* Author: 也无風雨也无晴
* Date: 2020/7/4
*/
import java.util.*;
public class x {
public static void main(String[] args)
{
test one=new test(); //构造一个对象
one.main(); //调用main函数
one.setX(); //调用另一个类的私有变量,也就是(get-set)法
int StaticX=one.getX();
System.out.println("私有静态变量:"+StaticX);
System.out.println("公共静态变量:"+test.StaticY); //调用另一个类的公共变量 ”类名+变量名“
System.out.println("公共实例变量:"+one.InsX);
/*可以看到,静态变量可以直接使用“类名+变量名”调用*/
/*而实例变量需要构造一个新的对象才可以调用*/
System.out.println("相加结果:"+(test.StaticY+StaticX+one.InsX));
}
}
class test{
Scanner sc = new Scanner(System.in); //构造一个新的对象来调用这个Scanner的函数,类似C语言的typedef
private static int StaticX; //静态变量
public static int StaticY;
public int InsX; //实例变量
public void main()
{
System.out.print("请输入私有静态变量:");
StaticX=sc.nextInt();
System.out.print("请输入公共静态变量:");
StaticY =sc.nextInt();
System.out.print("请输入公共实例变量:");
InsX =sc.nextInt();
}
public int getX()
{
return StaticX;
}
public void setX()
{
StaticX=StaticX;
}
}