欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaSE static final及abstract修飾符實例解析

 更新時間:2020年06月12日 14:41:01   作者:阿福聊編程  
這篇文章主要介紹了JavaSE static final及abstract修飾符實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

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

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

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

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

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

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) {   /**    * 第一點: 靜態(tài)變量屬于類的,可以使用名來訪問,非靜態(tài)變量是屬于對象的,必須使用對象來訪問。    */   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)方法是屬于對象的,"必須"使用對象來調(diào)用.

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

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

靜態(tài)代碼塊:在類加載的時候被調(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("構造方法");
  }
  
  static {
    System.out.println("靜態(tài)代碼塊");
  }
  public static void main(String[] args) {
     
    PersonTest personTest=new PersonTest();
  }
}
</em>

final 修飾符

  • 用final修飾的類不能被繼承,沒有子類
  • 用final修飾的方法可以被繼承,但是不能被子類的重寫 如java 中每個類都是Object類的子類,繼承了Object中的眾多方法,在子類中可以重寫toString方法、equals方法等,
  • 但是不能重寫getClass方法 wait方法等,因為這些方法都是使用fi修飾的
  • 用final修飾的變量表示常量,只能被賦一次值.其實使用final修飾的變量也就成了常量了,因為值不會再變了。

2)修飾成員變量:

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

public class PersonTest{
private final int a;
}

只有一次機會,可以給此變量a賦值的位置:

聲明的同時賦

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

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

public class Person{
private static final int a;
}

只有一次機會,可以給此變量a賦值的位置:

聲明的同時賦值

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

abstract修飾符

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

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

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

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

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

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

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

* 5.對PersonTest中的屬性進行顯示賦值

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • SpringCloud中的Consul詳解

    SpringCloud中的Consul詳解

    這篇文章主要介紹了SpringCloud中的Consul知識,本文使用的是docker-compose方式管理consul服務,直接啟動即可,需要的朋友可以參考下
    2022-03-03
  • MyBatis Mapper中 @Select注解調(diào)用靜態(tài)常量的問題分析

    MyBatis Mapper中 @Select注解調(diào)用靜態(tài)常量的問題分析

    在Java編碼中,我們通常會把這些數(shù)字或者字符串定義在常量類或者接口中,可以直接在mapper中也可以使用這些常量就比較好,這篇文章主要介紹了MyBatis Mapper中 @Select注解調(diào)用靜態(tài)常量,需要的朋友可以參考下
    2023-06-06
  • IntelliJ?IDEA?2022.2.1最新永久激活破解教程(持續(xù)更新)

    IntelliJ?IDEA?2022.2.1最新永久激活破解教程(持續(xù)更新)

    這篇文章主要介紹了IntelliJ?IDEA?2022.2.1最新永久激活破解教程(持續(xù)更新),小編測試這種激活工具也適用idea2022以下所有版本,本篇教程整理的比較詳細,匯總了idea各個版本的激活工具,激活方法多種多樣,大家選擇一種即可,感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • Java實現(xiàn)Redis哨兵的示例代碼

    Java實現(xiàn)Redis哨兵的示例代碼

    這篇文章主要介紹了Java實現(xiàn)Redis哨兵的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 淺析Java Web錯誤/異常處理頁面

    淺析Java Web錯誤/異常處理頁面

    這篇文章主要和大家一起對Java Web錯誤/異常處理頁面進行分析研究,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Spring的@ComponentScan注解用法介紹

    Spring的@ComponentScan注解用法介紹

    這篇文章主要介紹了Spring的@ComponentScan注解用法介紹,@ComponentScan注解一般和@Configuration注解一起使用,主要的作用就是定義包掃描的規(guī)則,然后根據(jù)定義的規(guī)則找出哪些需類需要自動裝配到spring的bean容器中,然后交由spring進行統(tǒng)一管理,需要的朋友可以參考下
    2023-11-11
  • 解決java連接虛擬機Hbase無反應的問題

    解決java連接虛擬機Hbase無反應的問題

    這篇文章主要介紹了解決java連接虛擬機Hbase無反應的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • MyBatis 執(zhí)行動態(tài) SQL語句詳解

    MyBatis 執(zhí)行動態(tài) SQL語句詳解

    大家對mybatis執(zhí)行任意sql語句都了解,那么MyBatis執(zhí)行動態(tài)SQL語句呢?下面腳本之家小編給大家解答下mybatis執(zhí)行動態(tài)sql語句的方法,非常不錯,感興趣的朋友參考下吧
    2016-08-08
  • JavaCV實現(xiàn)圖片中人臉檢測的示例代碼

    JavaCV實現(xiàn)圖片中人臉檢測的示例代碼

    這篇文章主要介紹了如何利用JavaCV實現(xiàn)圖片中人臉檢測的功能,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的可以了解一下
    2022-11-11
  • Spring Cloud 請求重試機制核心代碼分析

    Spring Cloud 請求重試機制核心代碼分析

    這篇文章主要介紹了Spring Cloud 請求重試機制核心代碼分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06

最新評論