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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java之静态

發(fā)布時間:2025/3/20 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java之静态 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? ? 靜態(tài)這個概念在很多編程語言中都有體現(xiàn),比如C++中,Java是面向?qū)ο蟮?#xff0c;某些特殊情況下,通常是實用方法但是不需要類的實例。static這個關(guān)鍵字就可以標(biāo)記處需要類實例的方法。

1、靜態(tài)方法

1)靜態(tài)方法不能調(diào)用非靜態(tài)的變量

? ? ? ?帶有靜態(tài)方法的類通常(雖然不一定是這樣)不打算要被初始化的,我們知道抽象類是不能被初始化的。靜態(tài)方法是在物管特定類的實例情況下進(jìn)行的,靜態(tài)方法是通過類的名稱來調(diào)用,所以靜態(tài)方法無法引用到該類的任何實例變量,因而在此情況下靜態(tài)方法也不會知道可以使用哪個實例變量值。

? ? ? 那如果在靜態(tài)方法中使用實例變量,會出現(xiàn)什么問題呢?

public class UserDuck {private int size;public static void main(String [] args){System.out.println("Size of duck is "+size);}public void setSize(int s) {size = s;}public int getSize() {return size;} }

2)靜態(tài)的方法不能調(diào)用非靜態(tài)的方法

public class UserDuck {private int size;public static void main(String [] args){System.out.println("Size of duck is "+getSize());}public void setSize(int s) {size = s;}public int getSize() {return size;} }

2、靜態(tài)變量

? ? ? 所謂的靜態(tài)方法就是在變量定義的時候加上static聲明,且靜態(tài)變量只會在載入的第一次的時候被初始化,且被所有實例共享。

public class UserDuck {private int size;private static int duckCount = 0;public UserDuck() {duckCount++;}public void setSize(int s) {size = s;}public int getSize() {return size;} }

靜態(tài)變量是在類被加載時初始化的。類之所以會被加載,是因為Java虛擬機認(rèn)為它該被加載,通常,Java虛擬器會加載某個類時因為第一次有人闡釋創(chuàng)建該類的實例,或者使用該類的靜態(tài)方法或者變量。因此:

1)靜態(tài)變量會在該類的任何對象創(chuàng)建之前就完成初始化

2)靜態(tài)變量會在該類的任何和靜態(tài)方法執(zhí)行之前就初始化

class Duck{static int size = 0;private String name;public Duck(String n) {name = n;size++;}}public class UserDuck {public static void main(String[] args) {System.out.println(Duck.size);Duck d= new Duck("Duck Duck");System.out.println(Duck.size);} }

注意:對于long活著了short,int等primitive主數(shù)據(jù)類型整數(shù)的默認(rèn)值是0,否點數(shù)默認(rèn)值是0.0,boolean是false,對象引用是null,靜態(tài)變量如果沒有給其賦初始值,它會被設(shè)定默認(rèn)值,int會被設(shè)定為0,靜態(tài)變量的默認(rèn)值回事該變量類型的默認(rèn)值。

1)靜態(tài)final變量是常量

一個被標(biāo)記為final的變量達(dá)標(biāo)它是一旦被初始化之后就不會被改動。

public static final double PI = 3.1415926;

此變量標(biāo)識為public,因此可供各方讀寫;

此變量標(biāo)識位static,不需要類的實例

此變量表示為final,為常量,常量變量的名稱都要大寫

那靜態(tài)的final變量如何初始化呢,有以下兩種方法:

1)聲明的時候直接初始化

public class Foo{public static final int FOO_X = 1024; }

2)靜態(tài)初始化程序中

public class BAR{public static final double BAR_SIGN;static{ BAR_SIGN = (double)Math.random();} }

當(dāng)然final還有其他的用法,比如

final變量為常量,無法改變其值;

final的method表示不能覆蓋該methon;

final的類代表不能繼承該類,即不能創(chuàng)建該類的子類。

總結(jié)

以上是生活随笔為你收集整理的Java之静态的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。