Java static关键字

    xiaoxiao2021-04-18  44

    static 关键字 static可以修饰类(内部类),成员变量,方法 局部变量不能用static修饰 static修饰成员变量 static修饰的成员变量称为静态成员变量,没有使用static修饰的变量叫做实例成员变量 静态成员变量与实例成员变量的区别 1.从变量的个数上讲 静态成员变量归整个类所有,由所有的对象所共享 改变了静态成员变量的值,其他对象调用的结果是修改后的结果,影响其他对象。 实例成员变量归当前对象所有,值的改变不影响其他对象。 2.访问方式 静态成员变量的推荐访问方式,通过类名.静态成员变量的方式访问。 3.初始化时间 类初始化的时候静态成员变量初始化,实例成员变量在创建对象时才会初始化,静态成员 变量初始化早于实例成员变量,静态成员变量不依赖对象而存在。 static修饰方法 使用static修饰的方法称为静态方法 没有使用static修饰的方法称为实例方法 1.从访问方式上讲 静态方法既可以通过类名来访问也可以通过指向对象的引用来访问(不推荐) 2.成员的访问 静态方法只能访问类中的静态成员,不能访问实例成员 实例方法既可以访问静态成员,也可以访问实例成员 3.this和super的使用 静态方法中不能使用this与super。 而实例方法中可以使用this与super。

    public class Static { //静态成员变量 static int x=1; //实例成员变量 int y = 2; public void method(){} public static void method1(){} public static void main(String[] args) { Static s = new Static(); Static s2 = new Static(); s.y=3; System.out.println("y的值:"+s2.y); s.x=3; System.out.println("x的值:"+s2.x); //实例方法的调用 s.method(); //静态方法的调用 s.method1(); Static.method1(); method1(); } } y的值:2 x的值:3

    静态成员变量的初始化 1.声明处初始化 2.使用静态初始化块 3.两种初始化执行顺序,按代码编写顺序执行 不能在构造器中对静态成员变量进行初始化,因为构造器在创建 对象的时候才会得到执行。而静态成员变量不需要创建任何对象 就能够进行访问。

    public class StaticInit { //声明处初始化 static int x=getX(); //静态初始化块 //静态初始化块会在初始化类时得到执行(在main方法执行之前执行) static{ x = 2; System.out.println("静态初始化块"); } public static int getX(){ System.out.println("声明处初始化"); return 5; } public static void main(String[] args) { System.out.println("main方法"); } } 声明处初始化 静态初始化块 main方法
    转载请注明原文地址: https://ju.6miu.com/read-674549.html

    最新回复(0)