Java变量类型 Day2

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;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42852559/article/details/107124961