欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂Java培訓(xùn)之詳解應(yīng)用程序static關(guān)鍵字應(yīng)用

2018-12-14 13:23:27 1190瀏覽

今天扣上學(xué)堂Java培訓(xùn)老師給大家分享一篇關(guān)于Java應(yīng)用程序開發(fā)學(xué)習(xí)之static關(guān)鍵字應(yīng)用的詳細(xì)介紹,首先Java的static關(guān)鍵字和C/C++語(yǔ)言的關(guān)鍵字有所不同:一旦在Java里使用了static關(guān)鍵字,那么這樣的內(nèi)容不再屬于對(duì)象自己,而是屬于類本身的,所以凡是本類的對(duì)象,都共享一份。



1、使用Javastatic關(guān)鍵字修飾成員變量

以下是Stundent類。

package app_one;
public class Student {
 private int id = 0 ;
 private int age = 0; 
 private String name = null;
 static int id_count = 0 ;
 public Student(int age , String name)
 {
 this.age = age ; 
 this.name = name ;
 this.id = ++id_count ;
 }
 public int getage() {
 return age;
 }
 public void setage(int age) {
 this.age = age;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
}

以下是主類:

package app_one;
public class hello {
 public static void main(String[] args) 
 {
 Student st1 = new Student(14,"小明");
 System.out.println("年齡:" + st1.getage() + " 姓名:" + st1.getName() + " 序號(hào):" + Student.id_count);
 Student st2 = new Student(15,"小紅");
 System.out.println("年齡:" + st2.getage() + " 姓名:" + st2.getName() + " 序號(hào):" + Student.id_count);
 Student st3 = new Student(18,"小李");
 System.out.println("年齡:" + st3.getage() + " 姓名:" + st3.getName() + " 序號(hào):" + Student.id_count);
 }
}

運(yùn)行結(jié)果:



從上面的案例可以看到,id_count是可以自動(dòng)進(jìn)行計(jì)數(shù)的,每一次實(shí)例化Student類的時(shí)候,id_count就自動(dòng)+1,然后賦值給成員變量id,由于定義了static關(guān)鍵字的變量不再屬于對(duì)象,而是屬于類,所以在訪問(wèn)的時(shí)候,我們可以用類名稱().靜態(tài)變量的形式來(lái)進(jìn)行訪問(wèn)。

2、使用static修飾成員方法

將上述程序中Student類的id_count修改為私有的靜態(tài)變量,并添加一個(gè)靜態(tài)的Get_idcount方法。

private static int id_count = 0 ;
public static int Get_idcount()
{
 return id_count ;
}

在主類中獲取id_count不通過(guò)類.變量的方式獲取,而是改為類.方法()的方式獲取。

Student.Get_idcount()

強(qiáng)調(diào)兩點(diǎn):



(1)成員方法可以訪問(wèn)成員變量

(2)成員方法可以訪問(wèn)靜態(tài)變量

(3)靜態(tài)方法可以訪問(wèn)靜態(tài)變量

(4)靜態(tài)方法不可以訪問(wèn)成員變量(非靜態(tài))

原因:因?yàn)樵趦?nèi)存中是先有的靜態(tài)內(nèi)容,后有的非靜態(tài)內(nèi)容



(1)靜態(tài)方法當(dāng)中不能使用this

原因:因?yàn)閠his代表當(dāng)前對(duì)象,通過(guò)誰(shuí)調(diào)用的方法,誰(shuí)就是當(dāng)前對(duì)象

小結(jié):

一旦使用了static修飾成員方法,那么這就成為了靜態(tài)方法,不屬于對(duì)象,而是屬于類本身的。

對(duì)于靜態(tài)方法來(lái)說(shuō),可以通過(guò)對(duì)象名進(jìn)行調(diào)用,也可以直接通過(guò)類名稱來(lái)調(diào)用。

如果沒(méi)有static關(guān)鍵字,那么必須首先創(chuàng)建對(duì)象,然后通過(guò)對(duì)象才能使用它

如果有了static關(guān)鍵字,那么不需要?jiǎng)?chuàng)建對(duì)象,直接就能通過(guò)類名稱進(jìn)行調(diào)用。

無(wú)論是成員變量,還是成員方法,如果有了static,都推薦使用類名稱進(jìn)行調(diào)用。

靜態(tài)變量:類名稱.靜態(tài)變量

靜態(tài)方法:類名稱.靜態(tài)方法();

對(duì)于本類中的靜態(tài)方法,可以省略類名稱。

3、靜態(tài)static的內(nèi)存圖

參照學(xué)習(xí)傳智的Java課程給出的圖,清晰易懂。



4、靜態(tài)代碼塊

靜態(tài)代碼塊格式:

public class 類名稱{
  static
  {
    //靜態(tài)代碼塊的內(nèi)容
  }
}


(1)特點(diǎn):當(dāng)?shù)谝淮斡玫奖绢悤r(shí),靜態(tài)代碼塊執(zhí)行唯一的一次,靜態(tài)內(nèi)容總是優(yōu)先于非靜態(tài),所以靜態(tài)代碼塊比構(gòu)造方法先執(zhí)行

(2)典型用途:用來(lái)一次性地對(duì)靜態(tài)成員變量進(jìn)行賦值。

針對(duì)上面的案例做修改,在Student類中添加一個(gè)靜態(tài)代碼塊:

package app_one;
public class Student {
 private int id = 0 ;
 private int age = 0; 
 private String name = null;
 private static int id_count = 0 ;
 static
 {
 System.out.println("靜態(tài)代碼塊運(yùn)行!");
 }
 public Student(int age , String name)
 {
 System.out.println("構(gòu)造方法運(yùn)行!");
 this.age = age ; 
 this.name = name ;
 this.id = ++id_count ;
 }
 public int getage() {
 return age;
 }
 public void setage(int age) {
 this.age = age;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public static int Get_idcount()
 {
 return id_count ;
 }
}

然后主程序修改如下:

package app_one;
public class hello {
 public static void main(String[] args) 
 {
 Student st1 = new Student(14,"小紅");
 System.out.println("姓名: "+st1.getName() + " 年齡: " + st1.getage() + " 序號(hào): "+Student.Get_idcount());
 Student st2 = new Student(14,"小李");
 System.out.println("姓名: "+st2.getName() + " 年齡: " + st2.getage() + " 序號(hào): "+Student.Get_idcount());
 }
}

運(yùn)行結(jié)果:



以上就是關(guān)于扣丁學(xué)堂Java培訓(xùn)之詳解應(yīng)用程序static關(guān)鍵字應(yīng)用的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,請(qǐng)關(guān)注扣丁學(xué)堂Java培訓(xùn)官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平臺(tái)不僅為您提供權(quán)威的Java視頻教程供大家學(xué)習(xí),還精心的準(zhǔn)備了Java從入門到精通開發(fā)實(shí)戰(zhàn)技能,定能讓你學(xué)有所成??鄱W(xué)堂Java技術(shù)交流群:670348138。

扣丁學(xué)堂微信公眾號(hào)


【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】


查看更多關(guān)于“Java開發(fā)資訊”的相關(guān)文章>>

標(biāo)簽: Java培訓(xùn) Java視頻教程 Java多線程 Java面試題 Java學(xué)習(xí)視頻 Java開發(fā)

熱門專區(qū)

暫無(wú)熱門資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部