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

Java中的方法、常量、變量、參數(shù)用例詳解

 更新時間:2024年01月22日 09:19:55   作者:JavaBuild  
在JVM的運轉(zhuǎn)中,承載的是數(shù)據(jù),而數(shù)據(jù)的一種變現(xiàn)形式就是“量”,量分為:常量與變量,我們在數(shù)學和物理學中已經(jīng)接觸過變量的概念了,在Java中的變量就是在程序運行過程中可以改變其值的量,這篇文章主要介紹了Java中的方法、常量、變量、參數(shù),需要的朋友可以參考下

在上一篇文章:一文搞清楚Java中的包、類、接口中我們講了Java中的包、類和接口,今天繼續(xù)將剩下的方法、常量、變量以及參數(shù)梳理完。

Java中的變量與常量

在JVM的運轉(zhuǎn)中,承載的是數(shù)據(jù),而數(shù)據(jù)的一種變現(xiàn)形式就是“量”,量分為:常量與變量,我們在數(shù)學和物理學中已經(jīng)接觸過變量的概念了,在Java中的變量就是在程序運行過程中可以改變其值的量。

常量

與變量相對應的是常量,所謂常量,即在作用域內(nèi)保持不變的值,一般用final關(guān)鍵字進行修飾,通常分為全局常量、類內(nèi)常量、局部常量。
【程序用例】

public class Person {
    //全局常量
    public static final String SEX = "男";
    //類內(nèi)常量
    private static final String BIRTHPLACE ="安徽";
    public void method1(String str){
        //局部常量-方法常量
        final String LANGUAGE = "漢語";
    }
    public void method2(final int age){
        //局部常量-參數(shù)常量,不可改,這段代碼會編譯報錯
        age = 20;
    }
}

變量

變量同樣分為局部變量、成員變量和靜態(tài)變量
【程序用例】

public class Person {
    //成員變量
    //在類內(nèi)部但在方法體外聲明的變量稱為成員變量,或者實例變量,或者字段。
    //之所以稱為實例變量,是因為該變量只能通過類的實例(對象)來訪問。
    int data1 = 3;
    //靜態(tài)變量
    //通過 static 關(guān)鍵字聲明的變量被稱為靜態(tài)變量(類變量),
    //它可以直接被類訪問
    static int data2 = 4;
    public int sum(){
        //局部變量
        //在方法體內(nèi)聲明的變量被稱為局部變量,該變量只能在該方法內(nèi)使用,
        //類中的其他方法并不知道該變量。
        int a = 1;
        int b = 2;
        return a+b;
    }
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.data1 == person.sum());
        System.out.println(Person.data2 == person.sum());
    }
}

【變量使用時注意事項】

局部變量
局部變量聲明在方法、構(gòu)造方法或者語句塊中。
局部變量在方法、構(gòu)造方法、或者語句塊被執(zhí)行的時候創(chuàng)建,當它們執(zhí)行完成后,將會被銷毀。
訪問修飾符不能用于局部變量。
局部變量只在聲明它的方法、構(gòu)造方法或者語句塊中可見。
局部變量是在棧上分配的。
局部變量沒有默認值,所以局部變量被聲明后,必須經(jīng)過初始化,才可以使用。

成員變量
成員變量聲明在一個類中,但在方法、構(gòu)造方法和語句塊之外。 當一個對象被實例化之后,每個成員變量的值就跟著確定。
成員變量在對象創(chuàng)建的時候創(chuàng)建,在對象被銷毀的時候銷毀。
成員變量的值應該至少被一個方法、構(gòu)造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息。 成員變量可以聲明在使用前或者使用后。
訪問修飾符可以修飾成員變量。
成員變量對于類中的方法、構(gòu)造方法或者語句塊是可見的。一般情況下應該把成員變量設為私有。通過使用訪問修飾符可以使成員變量對子類可見;成員變量具有默認值。數(shù)值型變量的默認值是
0,布爾型變量的默認值是 false,引用類型變量的默認值是 null。變量的值可以在聲明時指定,也可以在構(gòu)造方法中指定。

靜態(tài)變量
靜態(tài)變量在類中以 static 關(guān)鍵字聲明,須在方法、構(gòu)造方法和語句塊之外。
無論一個類創(chuàng)建了多少個對象,類只擁有靜態(tài)變量的一份拷貝。 靜態(tài)變量除了被聲明為常量外很少使用。 靜態(tài)變量儲存在靜態(tài)存儲區(qū)。
靜態(tài)變量在程序開始時創(chuàng)建,在程序結(jié)束時銷毀。 與成員變量具有相似的可見性。但為了對類的使用者可見,大多數(shù)靜態(tài)變量聲明為 public 類型。
靜態(tài)變量的默認值和實例變量相似。 靜態(tài)變量還可以在靜態(tài)語句塊中初始化

Java中的方法

何為方法?我的理解是:方法是Java中對邏輯行為的一種程序?qū)崿F(xiàn),通過方法的調(diào)用去實現(xiàn)我們想讓對象所擁有的行為,比如一個對象的增刪改查,只需要創(chuàng)建相應的方法即可!

方法的聲明

在方法聲明中,最重要的就是方法名(采用小駝峰命名法)與參數(shù),這兩者構(gòu)成的方法的簽名,是方法重載的判斷依舊,除此之外,在聲明方法的時候,還會設置訪問權(quán)限、是否靜態(tài)、返回值類型等。結(jié)構(gòu)如下圖:

實例方法

在類中聲明,無需static、abstract等關(guān)鍵字修飾,創(chuàng)建類對象,通過對象的引用所調(diào)用的方法為實例方法,類中最為常見的一種方法類型。上代碼!

public class Test {
    public static void main(String[] args) {
        Test sum = new Test();
        System.out.println(sum.add(1,2));
    }
    //實例方法,求兩數(shù)之和
    public int add(int a, int b) {
        return a + b;
    }
}

靜態(tài)方法

若方法的聲明中加上了static關(guān)鍵字,靜態(tài)方法是屬于類的,而不是屬于類創(chuàng)建的對象或?qū)嵗模试谡{(diào)用時無需通過對象實例。

public class Test {
    public static void main(String[] args) {
        System.out.println(sub(2,1));
    }
    public static int sub(int a,int b){
        return a - b;
    }
}

【注意事項】

1、靜態(tài)方法只能訪問靜態(tài)成員
2、調(diào)用靜態(tài)方法時可能對象并沒有被初始化,此時非靜態(tài)變量還未初始化
3、非靜態(tài)方法的調(diào)用和非靜態(tài)成員變量的訪問要先創(chuàng)建對象

抽象方法

當一個方法被關(guān)鍵字abstract修飾后,且沒有方法體,那它就成為了一個抽象方法,抽象方法往往出現(xiàn)在抽象類和接口中。

/**
 * @author JavaBUild
 */
abstract class AbstractDemo {
    abstract void display();
}

【注意事項】

1、抽象類中不一定必須要有抽象方法,但是有抽象方法的類必須是抽象類
2、若一個類繼承了抽象類,則必須實現(xiàn)抽象類中的抽象方法!
3、抽象類不能被實例化
4、抽象方法不能被聲明為靜態(tài)
5、抽象方法不能用 private 修飾
6、抽象方法不能用 final 修飾

native方法

我們在講Java的Object類時,已經(jīng)接觸過Java中的native方法了,它們用native關(guān)鍵字修飾,用C/C++語言實現(xiàn),聲明時native關(guān)鍵字必須在返回值前,不能用abstract修飾、沒有方法體,甚至沒有大括號!

public final native Class<?> getClass();
public native int hashCode();
protected native Object clone() throws CloneNotSupportedException;

這類方法存在的意義是作為Java標準類庫的一種擴展,或者兼容其他語言寫好的且更好用的類庫,或者提升程序執(zhí)行效率。

構(gòu)造方法

除了以上那些方法外,Java中還有一種特殊的方法,名為構(gòu)造方法,用以在對象初始化工作,Java 有兩種類型的構(gòu)造方法:無參構(gòu)造方法和有參構(gòu)造方法。
當我們在一個類中不寫任何構(gòu)造方法時,編譯器會默認一個無參構(gòu)造方法,只不過這個方法是缺省的,顯示不可見。
構(gòu)造方法的聲明規(guī)范

構(gòu)造方法的名字必須和類名一樣;
構(gòu)造方法沒有返回類型,包括 void;
構(gòu)造方法不能是抽象的(abstract)、靜態(tài)的(static)、最終的(final)、同步的(synchronized)。

代碼示例

public class Test {
   private String name;
   private int age;
    //默認構(gòu)造方法,無參構(gòu)造
    public Test() {
    }
    //有參構(gòu)造方法
    public Test(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public static void main(String[] args) {
        //通過無參構(gòu)造創(chuàng)建的對象,會有默認值
        Test test1 = new Test();
        //通過有參構(gòu)造方法構(gòu)造的對象,在初始化時便進行了賦值
        Test test2 = new Test("JavaBuild", 18);
        System.out.println(test1.name+":"+test1.age);
        System.out.println(test2.name+":"+test2.age);
    }
}

輸出:

null:0
JavaBuild:18

Java中參數(shù)

上面構(gòu)造方法中提及了有參構(gòu)造和無參構(gòu)造,那么現(xiàn)在就好好聊一聊這個參數(shù),參數(shù)應用于方法之中,作為方法運轉(zhuǎn)的條件和參考,當然這僅限于有參數(shù)的方法,方法中的參數(shù)分形參和實參,形參是在方法的定義階段,而實參則是在方法的調(diào)用階段,參數(shù)個數(shù)不限,類型不限,可以是基本數(shù)據(jù)類型,也可以是引用類型。

可變參數(shù)在jdk5中為了解決反射機制和printf中的問題引入了可變參數(shù)概念,顧名思義就是參數(shù)個數(shù)不確定的場景。定義方式:"參數(shù)類型...";

代碼示例

public class Test {
    public static void main(String[] args) {
      countLength("a");
      countLength("a","b");
      countLength("a","b","c");
    }
    public static void countLength(String... args){
        System.out.println(args.length);
    }
}

【注意事項】

1、每個方法最多只有一個可變參數(shù)
2、可變參數(shù)必須是方法的最后一個參數(shù)
3、無法僅通過改變可變參數(shù)的類型,來重載方法
4、通過對 class 文件反編譯可以發(fā)現(xiàn),可變參數(shù)被編譯器處理成了數(shù)組

到此這篇關(guān)于Java中的方法、常量、變量、參數(shù)的文章就介紹到這了,更多相關(guān)Java中的方法、常量、變量、參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot攔截器的配置使用介紹

    SpringBoot攔截器的配置使用介紹

    攔截器可以用來實現(xiàn)未滿足某些條件,不容許訪問某些資源。SpringBoot 支持攔截器,本文主要介紹攔截器的使用與原理
    2022-10-10
  • hibernate多表操作實例代碼

    hibernate多表操作實例代碼

    這篇文章主要介紹了hibernate多表操作實例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Java使用分布式實現(xiàn)數(shù)據(jù)庫讀寫分離的示例代碼

    Java使用分布式實現(xiàn)數(shù)據(jù)庫讀寫分離的示例代碼

    在MySQL中可以通過配置主從復制來實現(xiàn)數(shù)據(jù)同步,本文主要介紹了Java使用分布式實現(xiàn)數(shù)據(jù)庫讀寫分離,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • mybatis-plus分頁查詢?nèi)N方法小結(jié)

    mybatis-plus分頁查詢?nèi)N方法小結(jié)

    本文主要介紹了mybatis-plus分頁查詢?nèi)N方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Java列出2到100之間所有素數(shù)的方法

    Java列出2到100之間所有素數(shù)的方法

    這篇文章主要介紹了Java列出2到100之間所有素數(shù)的方法,涉及java數(shù)值運算的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Spring Boot整合MyBatis連接Oracle數(shù)據(jù)庫的步驟全紀錄

    Spring Boot整合MyBatis連接Oracle數(shù)據(jù)庫的步驟全紀錄

    這篇文章主要給大家介紹了關(guān)于Spring Boot整合MyBatis連接Oracle數(shù)據(jù)庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • 查看SpringBoot和JDK版本對應關(guān)系的方法

    查看SpringBoot和JDK版本對應關(guān)系的方法

    在進行一些自主學習的時候,發(fā)現(xiàn)使用maven方式創(chuàng)建的SpringBoot項目啟動失敗,最終發(fā)現(xiàn)是SpringBoot版本和JDK版本不對應導致的,所以本文就給大家介紹了如何查看SpringBoot和JDK版本的對應關(guān)系,需要的朋友可以參考下
    2024-03-03
  • Java的垃圾強制回收實例分析

    Java的垃圾強制回收實例分析

    這篇文章主要介紹了Java的垃圾強制回收,結(jié)合實例形式分析了java垃圾強制回收的相關(guān)原理及實現(xiàn)方法,需要的朋友可以參考下
    2019-08-08
  • Rabbitmq消息推送功能實現(xiàn)示例

    Rabbitmq消息推送功能實現(xiàn)示例

    rabbitMQ為異步消息處理提出了一個很好的解決方案,它是一個非常好用的消息中間件。主要解決當生產(chǎn)者大量產(chǎn)生數(shù)據(jù)時,消費者無法快速消費的問題。這個時候需要一個中間層,保存這個數(shù)據(jù),rabbitMQ是一個很好的解決方案
    2022-12-12
  • 使用springboot activiti關(guān)閉驗證自動部署方式

    使用springboot activiti關(guān)閉驗證自動部署方式

    這篇文章主要介紹了使用springboot activiti關(guān)閉驗證自動部署方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論