日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java什么是静态_什么是java静态

發布時間:2023/12/4 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java什么是静态_什么是java静态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是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什么是静态_什么是java静态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。