码迷,mamicode.com
首页 > 其他好文 > 详细

static关键字

时间:2020-01-05 00:26:29      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:system   变量   function   加载   初始化块   int   mamicode   执行   height   

satic可以修饰变量,方法和代码块 

静态变量:

1.static方法可以调用本类的static变量,但不能直接调用非static变量,调用非static变量必须使用对象调用。

1 public class testFunction {
2     static String HOBBY = "阅读";
3     String ordinaryVal = "睡觉";
4 
5     public static void updateStaticValue(){
6         System.out.println(HOBBY);
7         System.out.println(ordinaryVal); (报错了,不能直接调用,对象才可以调用非static变量)
8     }
1 public class testFunction {
2     static String HOBBY = "阅读";
3     String ordinaryVal = "睡觉";
4 
5     public static void updateStaticValue(){
6         System.out.println(HOBBY);
7         testFunction tf = new testFunction();
8         System.out.println(tf.ordinaryVal); #(正确)
9     }

 

静态方法:

1.静态方法可以被继承但是不能被重写;

public class Second  {
    public static void eat(){
        System.out.println("Secode_eat!!!");
    }

    public  void drink(){
        System.out.println("Secode_drink!!!");
    }
}

不可以重写:

技术图片

 

可以继承,t.eat()的结果是Second类eat()的结果:

技术图片

静态代码块:

1.静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。

public class testFunction {
    int num1;
    int num2;
    static int num3;

    public testFunction() {// 构造方法
        num1 = 11;
        System.out.println("通过构造方法为变量num1赋值");
    }

    { // 初始化块
        num2 = 22;
        System.out.println("通过初始化块为变量num2赋值");
    }

    static {// 静态初始化块
        num3 = 33;
        System.out.println("通过静态初始化块为静态变量num3赋值");
    }
    public static void main(String[] args) {
        testFunction s = new testFunction();
    
testFunction t = new testFunction();
} }

结果:

通过静态初始化块为静态变量num3赋值
通过初始化块为变量num2赋值
通过构造方法为变量num1赋值
通过初始化块为变量num2赋值
通过构造方法为变量num1赋值

程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。类是在第一次使用的时候才加载,加载之后就不会移除

 

技术图片 

static关键字

标签:system   变量   function   加载   初始化块   int   mamicode   执行   height   

原文地址:https://www.cnblogs.com/vanoraxnc/p/12150522.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!