static用法小结

来源:互联网 发布:迅雷 未知错误 mac 编辑:程序博客网 时间:2024/06/05 18:45

1,修饰变量

修饰变量后,该变量就成为了全局变量,当类加载时,会分配一块内存空间,其他类或方法使用该变量不会再分配内存空间。

2,修饰方法

修饰方法后,该方法成为静态方法,无需新建对象就可以调用。

声明的静态方法有几条注意事项:1,只能调用其他静态方法。2,只能访问静态数据。3,不能引用this 或 super

3,修饰类

静态内部类,其他类可以不用新建对象就能调用静态内部类中的变量或方法。

public class Test
{
    
    public static class Test2
    {
        public static void sayHello()
        {
            System.out.println("hello");
        }
        
    }
    
    public static void main(String[] args)
    {
        Test.Test2.sayHello();
        
    }
}


4,静态导包

使用static修饰表示导入该包中的静态方法、静态变量、如import static java.lang.System.*

.*表示导入全部,也可以指定导入某个。

import static java.lang.System.out;
public class Test
{
    int a=0;
    int b=0;
    static int c=0;
    public Test()
    {
        a=22;
        out.println("a="+a);
    }
}


5,修饰代码块

static修饰的代码块(也称为静态代码块),可以有多个,在类加载时会执行这些代码块,有多个的情况下,会按在类中的顺序执行,但是每个代码块只会执行一次。

import static java.lang.System.*;
public class Test
{
    int a=0;
    int b=0;
    static int c=0;
    public Test()
    {
        a=22;
        out.println("构造方法赋值");
    }
    
    {
        b= 33;
        out.println("初始化块赋值");
    }
    
    static
    {
        c=90;
        out.println("静态块赋值");
    }
    
    public static void main(String[] args)
    {
        Test t=new Test();
        out.println(t.a);
        out.println(t.b);
        out.println(c);
    }
}

结果如下

静态块赋值
初始化块赋值
构造方法赋值
22
33
90