旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

什么是java静态【JAVA教程】,java,静态

作者:搜教程发布时间:2019-11-27分类:JAVA教程浏览:27评论:0


导读:什么是java静态java静态包含静态变量、静态要领、静态初始化块,以下是静态的详解。(引荐教程:java教程)1.什么是静态变量人人都晓得,我们能够基于一个类建...

什么是java静态

java静态包含静态变量、静态要领、静态初始化块,以下是静态的详解。(引荐教程:java教程)

1. 什么是静态变量

人人都晓得,我们能够基于一个类建立多个该类的对象,每一个对象都具有本身的成员,相互自力。

然而在某些时刻,我们更愿望该类一切的对象同享同一个成员。此时就是 static 大显神通的时刻了!

Java 中被 static 润饰的成员称为静态成员或类成员。它属于全部类一切,而不是某个对象一切,即被类的一切对象所同享。

静态成员能够运用类名直接接见,也能够运用对象名举行接见。固然,鉴于他作用的特殊性更引荐用类名接见

运用 static 能够润饰变量、要领和代码块。

public class Test1 {
    // static润饰的变量为静态变量,一切类的对象同享hobby
    static String hobby = "Tedu";
    
    public static void main(String[] args) {
        // 静态变量能够直接运用类名来接见,无需建立对象
        System.out.println("经由过程类名接见hobby:" + Test1.hobby);
        // 建立类的对象
        Test1 t1 = new Test1();
        // 运用对象名接见静态变量
        System.out.println("运用对象名访hobby:" + t1.hobby);
        // 运用对象名的情势修正静态变量的值
        t1.hobby = "cjj";
        // 再次运用类名接见静态白变量,值已被修正
        System.out.println("经由过程类名接见hobby:" + Test1.hobby);
    }
}

运转效果:

经由过程类名接见hobby:Tedu
运用对象名访hobby:Tedu
经由过程类名接见hobby:cjj

注重:

静态成员属于全部类,当体系第一次运用该类时,就会为其分派内存空间直到该类被卸载才会举行资本接纳!

2. static 运用之静态要领

与静态变量一样,我们也能够运用 static 润饰要领,称为静态要领或类要领。

实在之前我们一直写的 main 要领就是静态要领

public class Test01 {
    //运用static关键字声明静态要领
    public static void print() {
        System.out.println("迎接你:Cjj!");
    }
    
    public static void main(String[] args) {
        //直接运用类名挪用静态要领
        Test01.print();
        //也能够经由过程对象名挪用,固然更引荐运用类名挪用
        Test01 t1 = new Test01();
        t1.print();
    }
}

复制代码

迎接你:Cjj!
迎接你:Cjj!

注重:

1、 静态要领中能够直接挪用同类中的静态成员,但不能直接挪用非静态成员。如:

假如愿望在静态要领中挪用非静态变量,能够经由过程建立类的对象,然后经由过程对象来接见非静态变量。如:

2、 在一般成员要领中,则能够直接接见同类的非静态变量和静态变量,如:

3、 静态要领中不能直接挪用非静态要领,须要经由过程对象来接见非静态要领。如:

public class Test01 {
    String name = "Cjj"; //静态成员变量
    static String hobby = "study"; //非静态成员变量
    
    //一般成员要领
    public void print1() {
        System.out.println("一般成员要领~~~"); 
    }
    
    //静态成员要领
    public static void print2() {
        System.out.println("静态成员要领~~~");
    }
    
    public static void main(String[] args) {
        //一般成员要领必需经由过程对象来挪用
        Test01 t1 = new Test01();
        t1.print1();
        //能够直接挪用静态要领
        print2();
    }
}

3. static 运用之静态初始化块

Java 中能够经由过程初始化块举行数据赋值。如:

public class Test02 {
    String name; // 定义一个成员变量
    //经由过程初始化块为成员变量赋值
    {
        name = "cjj";
    }
}

顺次实行这些代码块。假如运用 static 润饰初始化块,就称为静态初始化块。

注重:

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

我们来看一段代码:

public class Test02 {
    int num1;
    int num2;
    static int num3;
    public Test02() {// 组织要领
        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) {
        Test02 t1 = new Test02(); //建立对象
        System.out.println("num1:" + t1.num1);
        System.out.println("num2:" + t1.num2);
        System.out.println("num3:" + num3);
        
    }
}

运转效果:

经由过程静态初始化块为静态变量num3赋值
经由过程初始化块为变量num2赋值
经由过程组织要领为变量num1赋值
num1:11
num2:22
num3:33

经由过程输出效果,我们能够看到,顺序运转时静态初始化块最早被实行,然后实行一般初始化块,末了才实行组织要领。因为静态初始化块只在类加载时实行一次,所以当再次建立对象 hello2 时并未实行静态初始化块。

类是在第一次运用的时刻才加载,加载以后就不会移除。

以上就是什么是java静态的细致内容,更多请关注ki4网别的相干文章!

标签:java静态


欢迎 发表评论: