溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaSE static final及abstract修飾符實(shí)例分析

發(fā)布時(shí)間:2020-06-23 11:06:36 來源:億速云 閱讀:121 作者:清晨 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)JavaSE static final及abstract修飾符實(shí)例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

static :靜態(tài)常量,靜態(tài)方法,靜態(tài)代碼塊

靜態(tài)變量: 靜態(tài)變量屬于類的,使用類名來訪問,非靜態(tài)變量是屬于對(duì)象的,"必須"使用對(duì)象來訪問.

注意:靜態(tài)變量對(duì)于類而言在內(nèi)存中只有一個(gè),能被類中所有的實(shí)例共享。 實(shí)例變量對(duì)于類的每一個(gè)實(shí)例都有一份,

它們之間互不影在加載類的過程中為靜態(tài)變量分配內(nèi)存,實(shí)例變量在創(chuàng)建對(duì)象時(shí)分配內(nèi)存

所以靜態(tài)變量可以使用類名來直接訪問,而不需要使用對(duì)象來訪問.  

package com.len.collection;public class PersonTest111 {  private static String username="戰(zhàn)士高高";  private String password;  public static String getUsername() {   return username;  }  public static void setUsername(String username) {   PersonTest111.username = username;  }  public String getPasswoord() {   return passwoord;  }  public void setPasswoord(String passwoord) {   this.passwoord = passwoord;  }  public static void main(String[] args) {   /**    * 第一點(diǎn): 靜態(tài)變量屬于類的,可以使用名來訪問,非靜態(tài)變量是屬于對(duì)象的,必須使用對(duì)象來訪問。    */   System.out.println(PersonTest111.username);   PersonTest111 personTest111 = new PersonTest111();   personTest111.setPasswoord("2131231");   System.out.println(personTest111.getPasswoord());    }}

靜態(tài)方法:靜態(tài)方法數(shù)屬于類的,"可以"使用類名來調(diào)用,非靜態(tài)方法是屬于對(duì)象的,"必須"使用對(duì)象來調(diào)用.

靜態(tài)方法"不可以"直接訪問類中的非靜態(tài)變量和非靜態(tài)方法,但是"可以"直接訪問類中的靜態(tài)變量和靜態(tài)方法

注意:this和super在類中屬于非靜態(tài)的變量.(靜態(tài)方法中不能使用),代碼同上

靜態(tài)代碼塊:在類加載的時(shí)候被調(diào)用,給靜態(tài)成員變量賦值

<em>package com.len.collection;
 
public class PersonTest extends PersonTest111{
  private static String username="張珊";
  private String password="123456";
  public PersonTest(){
    System.out.println("構(gòu)造方法");
  }
  
  static {
    System.out.println("靜態(tài)代碼塊");
  }
  public static void main(String[] args) {
     
    PersonTest personTest=new PersonTest();
  }
}
</em>

final 修飾符

  • 用final修飾的類不能被繼承,沒有子類
     
  • 用final修飾的方法可以被繼承,但是不能被子類的重寫 如java 中每個(gè)類都是Object類的子類,繼承了Object中的眾多方法,在子類中可以重寫toString方法、equals方法等,
     
  • 但是不能重寫getClass方法 wait方法等,因?yàn)檫@些方法都是使用fi修飾的
     
  • 用final修飾的變量表示常量,只能被賦一次值.其實(shí)使用final修飾的變量也就成了常量了,因?yàn)橹挡粫?huì)再變了。
     

2)修飾成員變量:

非靜態(tài)成員變量:

public class PersonTest{
private final int a;
}

只有一次機(jī)會(huì),可以給此變量a賦值的位置:

聲明的同時(shí)賦

構(gòu)造器中賦值(類中出現(xiàn)的所有構(gòu)造器都要寫)

靜態(tài)成員變量:

public class Person{
private static final int a;
}

只有一次機(jī)會(huì),可以給此變量a賦值的位置:

聲明的同時(shí)賦值

靜態(tài)代碼塊中賦值

abstract修飾符

  • 可以用來修飾方法也可以修飾類,如果修飾方法,那么該方法就是抽象方法;如果修飾類,那么該類就是抽象類。
  • 抽象類,不能使用new關(guān)鍵在來創(chuàng)建對(duì)象,它是用來讓子類繼承的,
  • 抽象方法,只有方法的聲明,沒有方法的實(shí)現(xiàn),它是用來讓子類實(shí)現(xiàn)的
     

注:子類繼承抽象類后,需要實(shí)現(xiàn)抽象類中沒有實(shí)現(xiàn)的抽象方法,否則這個(gè)子類也要聲明為抽象類。

類的創(chuàng)建和初始化過程

* 1.類加載,同時(shí)初始化類中的靜態(tài)屬性

* 2.執(zhí)行靜態(tài)代碼塊

* 3.分配內(nèi)存空間,同時(shí)初始化非靜態(tài)的屬性

* 4.調(diào)用 PersonTest父類構(gòu)造器

* 5.對(duì)PersonTest中的屬性進(jìn)行顯示賦值

* 6.執(zhí)行匿名代碼塊

* 7.執(zhí)行構(gòu)造器

* 8.返回內(nèi)存地址

package com.len.collection;

public class PersonTest extends PersonTest111{
  private static String username="張珊";
  private String password="123456";
  public PersonTest(){
    System.out.println("構(gòu)造方法");
  }
  //匿名代碼塊是創(chuàng)建對(duì)象的時(shí)候自動(dòng)執(zhí)行,并且是在構(gòu)造方法之前執(zhí)行給方法
  //作用:給對(duì)象的成員變量初始化賦值
  {
    System.out.println("匿名代碼塊");
  }
  //靜態(tài)方法在類被加載的時(shí)候調(diào)用
  //作用:給靜態(tài)成員變量初始化賦值
  static {
    System.out.println("靜態(tài)代碼塊");
  }
  public static void main(String[] args) {
    /**
     * 1.類加載,同時(shí)初始化類中的靜態(tài)屬性
     * 2.執(zhí)行靜態(tài)代碼塊
     * 3.分配內(nèi)存空間,同時(shí)初始化非靜態(tài)的屬性
     * 4.調(diào)用 PersonTest父類構(gòu)造器
     * 5.對(duì)PersonTest中的屬性進(jìn)行顯示賦值
     * 6.執(zhí)行匿名代碼塊
     * 7.執(zhí)行構(gòu)造器
     * 8.返回內(nèi)存地址
     */
    PersonTest personTest=new PersonTest();
  }
}

JavaSE static final及abstract修飾符實(shí)例分析

關(guān)于JavaSE static final及abstract修飾符實(shí)例分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI