摘要:可變參數(shù)是之后出現(xiàn)的新特性使用前提當(dāng)方法的參數(shù)列表數(shù)據(jù)類型已經(jīng)確定但是參數(shù)的個(gè)數(shù)不確定就可以使用可變參數(shù)使用格式定義方法時(shí)使用修飾符返回值類型方法名數(shù)據(jù)類型變量名可變參數(shù)的原理可變參數(shù)底層就是一個(gè)數(shù)組根據(jù)傳遞參數(shù)個(gè)數(shù)不同會(huì)創(chuàng)建不同長(zhǎng)度的數(shù)組
package com.itheima.demo04.VarArgs;
/*
可變參數(shù):是JDK1.5之后出現(xiàn)的新特性 使用前提: 當(dāng)方法的參數(shù)列表數(shù)據(jù)類型已經(jīng)確定,但是參數(shù)的個(gè)數(shù)不確定,就可以使用可變參數(shù). 使用格式:定義方法時(shí)使用 修飾符 返回值類型 方法名(數(shù)據(jù)類型...變量名){} 可變參數(shù)的原理: 可變參數(shù)底層就是一個(gè)數(shù)組,根據(jù)傳遞參數(shù)個(gè)數(shù)不同,會(huì)創(chuàng)建不同長(zhǎng)度的數(shù)組,來(lái)存儲(chǔ)這些參數(shù) 傳遞的參數(shù)個(gè)數(shù),可以是0個(gè)(不傳遞),1,2...多個(gè)
*/
public class Demo01VarArgs {
public static void main(String[] args) { //int i = add(); //int i = add(10); int i = add(10,20); //int i = add(10,20,30,40,50,60,70,80,90,100); System.out.println(i); method("abc",5.5,10,1,2,3,4); } /* 可變參數(shù)的注意事項(xiàng) 1.一個(gè)方法的參數(shù)列表,只能有一個(gè)可變參數(shù) 2.如果方法的參數(shù)有多個(gè),那么可變參數(shù)必須寫(xiě)在參數(shù)列表的末尾 */ /*public static void method(int...a,String...b){ }*/ /*public static void method(String b,double c,int d,int...a){ }*/ //可變參數(shù)的特殊(終極)寫(xiě)法 public static void method(Object...obj){ } /* 定義計(jì)算(0-n)整數(shù)和的方法 已知:計(jì)算整數(shù)的和,數(shù)據(jù)類型已經(jīng)確定int 但是參數(shù)的個(gè)數(shù)不確定,不知道要計(jì)算幾個(gè)整數(shù)的和,就可以使用可變參數(shù) add(); 就會(huì)創(chuàng)建一個(gè)長(zhǎng)度為0的數(shù)組, new int[0] add(10); 就會(huì)創(chuàng)建一個(gè)長(zhǎng)度為1的數(shù)組,存儲(chǔ)傳遞來(lái)過(guò)的參數(shù) new int[]{10}; add(10,20); 就會(huì)創(chuàng)建一個(gè)長(zhǎng)度為2的數(shù)組,存儲(chǔ)傳遞來(lái)過(guò)的參數(shù) new int[]{10,20}; add(10,20,30,40,50,60,70,80,90,100); 就會(huì)創(chuàng)建一個(gè)長(zhǎng)度為2的數(shù)組,存儲(chǔ)傳遞來(lái)過(guò)的參數(shù) new int[]{10,20,30,40,50,60,70,80,90,100}; */ public static int add(int...arr){ //System.out.println(arr);//[I@2ac1fdc4 底層是一個(gè)數(shù)組 //System.out.println(arr.length);//0,1,2,10 //定義一個(gè)初始化的變量,記錄累加求和 int sum = 0; //遍歷數(shù)組,獲取數(shù)組中的每一個(gè)元素 for (int i : arr) { //累加求和 sum += i; } //把求和結(jié)果返回 return sum; } //定義一個(gè)方法,計(jì)算三個(gè)int類型整數(shù)的和 /*public static int add(int a,int b,int c){ return a+b+c; }*/ //定義一個(gè)方法,計(jì)算兩個(gè)int類型整數(shù)的和 /*public static int add(int a,int b){ return a+b; }*/
}
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/75123.html
摘要:最近在寫(xiě)一個(gè)功能點(diǎn),用了中的可變參數(shù),真是把我搞得夠慘。。我找到了阿里巴巴的開(kāi)發(fā)手冊(cè)中關(guān)于可變參數(shù)的規(guī)約。阿里巴巴也是不建議大家合作可變參數(shù)的,可知它帶來(lái)的坑會(huì)有多坑。。 最近在寫(xiě)一個(gè)功能點(diǎn),用了 Java 中的可變參數(shù),真是把我搞得夠慘。。 什么是可變參數(shù)? 就是方法參數(shù)用 Object... args 三個(gè)點(diǎn)形式,一個(gè)參數(shù)可以接收多個(gè)參數(shù)。 實(shí)際的代碼就不帖了,來(lái)看這個(gè)示例吧: 示...
摘要:所有變量的類型在編譯時(shí)已知在程序運(yùn)行之前,因此編譯器也可以推導(dǎo)出所有表達(dá)式的類型。像變量的類型一樣,這些聲明是重要的文檔,對(duì)代碼讀者很有用,并由編譯器進(jìn)行靜態(tài)檢查。對(duì)象類型的值對(duì)象類型的值是由其類型標(biāo)記的圓。 大綱 1.編程語(yǔ)言中的數(shù)據(jù)類型2.靜態(tài)與動(dòng)態(tài)數(shù)據(jù)類型3.類型檢查4.易變性和不變性5.快照?qǐng)D6.復(fù)雜的數(shù)據(jù)類型:數(shù)組和集合7.有用的不可變類型8.空引用9.總結(jié) 編程語(yǔ)言中的數(shù)據(jù)...
摘要:檢查參數(shù)的有效性每當(dāng)編寫(xiě)方法或者構(gòu)造器時(shí),應(yīng)該考慮它的參數(shù)有哪些限制。為了保護(hù)實(shí)例的內(nèi)部信息避免受到這種攻擊,對(duì)于構(gòu)造器的每個(gè)可變參數(shù)進(jìn)行保護(hù)性拷貝是必要的,并且使用備份對(duì)象作為實(shí)例的組件,而不是使用原始的對(duì)象。 檢查參數(shù)的有效性 每當(dāng)編寫(xiě)方法或者構(gòu)造器時(shí),應(yīng)該考慮它的參數(shù)有哪些限制。應(yīng)該把這些限制寫(xiě)到文檔中,并且在這個(gè)方法體開(kāi)頭處,通過(guò)顯示的檢查來(lái)實(shí)施這些限制。養(yǎng)成這樣的習(xí)慣非常重要...
摘要:原文出自本文總結(jié)了程序員常犯的個(gè)錯(cuò)誤。可以看看為什么在中被設(shè)計(jì)成不可變父類和子類的構(gòu)造函數(shù)以上這段代碼出現(xiàn)編譯錯(cuò)誤,因?yàn)槟J(rèn)的父類構(gòu)造函數(shù)未定義。如果程序員定義構(gòu)造函數(shù),編譯器將不插入默認(rèn)的無(wú)參數(shù)構(gòu)造函數(shù)。 原文出自:http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 本文總結(jié)了J...
摘要:來(lái)來(lái)來(lái),花分鐘看看的七大新特性,還有代碼樣例。本地是指方法內(nèi)的變量聲明。從開(kāi)始,這個(gè)正式進(jìn)入標(biāo)準(zhǔn)庫(kù)包。同步請(qǐng)求會(huì)阻止當(dāng)前線程。可喜的是,如果嘗試改變不可變集合,會(huì)通過(guò)發(fā)出警告是在中引入的,增加了三個(gè)新方法。 現(xiàn)在Java有多元化的發(fā)展趨勢(shì),既有JS又有C++還有C#的影子,不學(xué)習(xí)那是不行滴。來(lái)來(lái)來(lái),花5分鐘看看Java9-Java11的七大新特性,還有代碼樣例。Java11 發(fā)布了,然...
閱讀 1586·2021-09-02 13:57
閱讀 1963·2019-08-30 15:55
閱讀 2535·2019-08-30 15:54
閱讀 2357·2019-08-30 15:44
閱讀 2822·2019-08-30 13:18
閱讀 559·2019-08-30 13:02
閱讀 909·2019-08-29 18:46
閱讀 1732·2019-08-29 11:25