java語言static

Java中的靜態(tài)方法static

1、static表示“全局”或者“靜態(tài)”的意思,用來修飾成員變量和成員方法,也可以形成靜態(tài)static代碼塊,被static修飾的成員變量和成員方法獨立于該類的任何對象。也就是說,它不依賴類特定的實例,被類的所有實例共享(因此可以用來統(tǒng)計一個類有多少個實例化對象),所以有些屬性希望被所有對象共享,則必須將其聲明為static屬性,被static聲明的屬性成為全局屬性。
2、只要這個類被加載,Java虛擬機就能根據(jù)類名在運行時數(shù)據(jù)區(qū)的方法區(qū)內(nèi)定找到他們。因此,static對象可以在它的任何對象創(chuàng)建之前訪問,無需引用任何對象。
3、類中定義的靜態(tài)代碼塊會優(yōu)先于構(gòu)造塊先執(zhí)行,而且不管有多少個對象,靜態(tài)代碼塊只執(zhí)行一次
class PersonE{
private String name;
private int age;
private static String country = "A城";
public PersonE(String name,int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static String getCountry() {
return country;
}
public static void setCountry(String country) {
PersonE.country = country;
}
public void info(){
System.out.println("姓名:"+this.getName()+","+"年齡:"+this.getAge()+","+"城市:"+country);
}
}
public class StaticUse {
public static void main(String[] args){
PersonE per1 = new PersonE("張三",20);
PersonE per2 = new PersonE("李四",22);
System.out.println("---------修改之前--------");
per1.info();
per2.info();
System.out.println("---------修改之後---------");
PersonE.setCountry("B城");
per1.info();
per2.info();
}
}


屏幕快照 2016-04-12 下午10.20.25.png

例2:
public class StaticUse{
private static int s;
public StaticUse(){
System.out.println("Creat new Class");
}
static{
System.out.println("static block initialized");
}
public static int getS() {
return s;
}
public static void setS(int s) {
StaticUse.s = s;
}
public static void main(String[] args){
StaticUse classA = new StaticUse();
StaticUse classB = new StaticUse();
System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
classA.setS(10);
System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
classB.setS(classB.getS()+10);
System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
}
}


屏幕快照 2016-04-12 下午10.22.17.png

例子3、
class PersonE{
private static int count = 0;
public PersonE(){
count++;
System.out.println("產(chǎn)生了"+count+"個對象");
}
}
public class StaticUse{
public static void main(String[] args){
new PersonE();
new PersonE();
}
}
屏幕快照 2016-04-12 下午10.24.22.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,739評論 18 399
  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔...
    葉總韓閱讀 5,152評論 0 41
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子...
    趙宇_阿特奇閱讀 1,894評論 0 2
  • 今年的世界讀書日,微信里各種有關(guān)讀書的公眾號都被這個紀(jì)念日刷屏了,不過大道廢,有仁義。好在這個紀(jì)念日還沒完全變成雷...
    競走的蝸牛閱讀 305評論 0 0