最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java語法基礎(chǔ)之函數(shù)的使用說明

 更新時(shí)間:2013年07月24日 09:51:43   投稿:jingxian  
函數(shù)就是定義在類中的具有特定功能的一段小程序,函數(shù)也稱為方法

函數(shù)
四個(gè)方面:
函數(shù)的定義
函數(shù)的特點(diǎn)
函數(shù)的應(yīng)用
函數(shù)的重載

一、函數(shù)的定義及特點(diǎn)
1) 什么是函數(shù)?

函數(shù)就是定義在類中的具有特定功能的一段小程序,函數(shù)也稱為方法
2)Java中函數(shù)的格式:
修飾符 返回值類型函數(shù)名(參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)2,。。)
{  執(zhí)行語句;
 return 返回值;

返回值類型:函數(shù)運(yùn)行后的結(jié)果的數(shù)據(jù)類型
參數(shù)類型:是形式參數(shù)的數(shù)據(jù)類型
形式參數(shù):是一個(gè)變量,用于存儲(chǔ)調(diào)用函數(shù)時(shí)傳遞給函數(shù)的實(shí)際參數(shù)
實(shí)際參數(shù):傳遞給形式參數(shù)的具體數(shù)值
return:用于結(jié)束函數(shù)
返回值:該值會(huì)返回給調(diào)用者
3) 函數(shù)的特點(diǎn)
a) 定義函數(shù)可以將功能代碼進(jìn)行封裝后
b) 便于對(duì)該功能進(jìn)行復(fù)用
c) 函數(shù)只有被調(diào)用才會(huì)被執(zhí)行
d) 函數(shù)的出現(xiàn)提高了代碼的復(fù)用性
e) 對(duì)于函數(shù)沒有具體返回值的情況,返回值類型用關(guān)鍵字void表示,那么該函數(shù)中的return語句如果在最后一行可以省略不寫,系統(tǒng)會(huì)幫你自動(dòng)加上。
注:
a) 函數(shù)中只能調(diào)用函數(shù),不可以在函數(shù)內(nèi)部定義函數(shù)。
b) 定義函數(shù)時(shí),函數(shù)的結(jié)果應(yīng)該返回給調(diào)用者,交由調(diào)用者處理。
c) 當(dāng)函數(shù)運(yùn)算后,沒有具體的返回值時(shí),這是返回值類型用一個(gè)特殊的關(guān)鍵字來標(biāo)識(shí)該關(guān)鍵字就是void,void:代表的是函數(shù)沒有具體返回值的情況。
d)  當(dāng)函數(shù)的返回值類型是void時(shí),函數(shù)中的return語句可以省略不寫。
4)  如何定義一個(gè)函數(shù)?
    函數(shù)其實(shí)就是一個(gè)功能,定義函數(shù)就是實(shí)現(xiàn)功能,通過兩個(gè)明確來完成:
       1)、明確該功能的運(yùn)算完的結(jié)果,其實(shí)是在明確這個(gè)函數(shù)的返回值類型。
       2)、在實(shí)現(xiàn)該功能的過程中是否有未知內(nèi)容參與了運(yùn)算,其實(shí)就是在明確這個(gè)函數(shù)的參數(shù)列表(參數(shù)類型&參數(shù)個(gè)數(shù))。
5) 函數(shù)的作用:
1)、用于定義功能。
2)、用于封裝代碼提高代碼的復(fù)用性。
注意:函數(shù)中只能調(diào)用函數(shù),不能定義函數(shù)。
6) 主函數(shù):
    1)、保證該類的運(yùn)行。
    2)、因?yàn)樗浅绦虻娜肟凇?br />    3)、因?yàn)樗诒籮vm調(diào)用。
7) 函數(shù)定義名稱是為什么呢?
答:1)、為了對(duì)該功能進(jìn)行標(biāo)示,方便于調(diào)用。
    2)、為了通過名稱就可以明確函數(shù)的功能,為了增加代碼的閱讀性。

二、函數(shù)的應(yīng)用
1)  兩個(gè)明確
a)  明確要定義的功能最后的結(jié)果是什么?
b)  明確在定義該功能的過程中,是否需要未知內(nèi)容參與運(yùn)算
2)  示例:
舉例1:

復(fù)制代碼 代碼如下:

class FunctionDemo
{
 public static void main(String[] args)
 {
  int x = 4;
  System.out.println(x*3+5);
  x = 6;
  System.out.println(x*3+5);
  int y = 4*3+5;
  int z = 6*3+5;
        System.out.println(y);
        System.out.println(z);
 }
}

發(fā)現(xiàn)以上的運(yùn)算,因?yàn)楂@取不同數(shù)據(jù)的運(yùn)算結(jié)果,代碼出現(xiàn)了重復(fù)。
為了提高代碼的復(fù)用性。對(duì)代碼進(jìn)行抽取。將這個(gè)部分定義成一個(gè)功能。方便與日后使用。
java中對(duì)功能的定義是通過函數(shù)的形式來體現(xiàn)的。
明確功能:需要定義功能,完成一個(gè)整數(shù)的*3+5的運(yùn)算,

1,先明確函數(shù)定義的格式。
    /*
    修飾符返回值類型函數(shù)名(參數(shù)類型形式參數(shù)1,參數(shù)類型形式參數(shù)2,)
    {
           執(zhí)行語句;
           return 返回值;
    }

復(fù)制代碼 代碼如下:

class FunctionDemo
{
 public static void getResult(int num)
 {
  System.out.println(num * 3 + 5);
  return;//可以省略
 }
public static void main(String[] args)
 {
  getResult(5);
 }
}

對(duì)上述關(guān)于return是否省略這一小小知識(shí)點(diǎn)的總結(jié):
當(dāng)函數(shù)運(yùn)算后,沒有具體的返回值時(shí),這是返回值類型用一個(gè)特殊的關(guān)鍵字來標(biāo)識(shí)。
該關(guān)鍵字就是void。void:代表的是函數(shù)沒有具體返回值的情況。
當(dāng)函數(shù)的返回值類型是void時(shí),函數(shù)中的return語句可以省略不寫。

舉例2:

復(fù)制代碼 代碼如下:

class FunctionDemo2
{
 public static void main(String[] args)
 {
  int sum = getSum(4,6);
  System.out.println("sum="+sum);
  sum = getSum(2,7);
  System.out.println("sum="+sum);
 }
 
 /*下面的這個(gè)功能定義思想有問題,為什么呢?因?yàn)橹粸橥瓿杉臃ㄟ\(yùn)算,至于是否要對(duì)和進(jìn)行打印操作,
 那是調(diào)用者的事,不要在該功能中完成。*/
 public static void get(int a,int b)
 {
  System.out.println(a+b);
  return ;
 }
}

如何定義一個(gè)函數(shù)呢?
    1,既然函數(shù)是一個(gè)功能,那么該功能的運(yùn)算結(jié)果是什么先明確
       因?yàn)檫@是在明確函數(shù)的返回值類型。
    2,在明確在定義該功能的過程中是否需要未知的內(nèi)容參與運(yùn)算。
       因?yàn)槭窃诿鞔_函數(shù)的參數(shù)列表(參數(shù)的類型和參數(shù)的個(gè)數(shù))。
復(fù)制代碼 代碼如下:

class FunctionDemo2
{
 public static void main(String[] args)
 {
/*
  int sum = getSum(4,6);
  System.out.println("sum="+sum);
  sum = getSum(2,7);
  System.out.println("sum="+sum);
  */
  //get(4,5);
  int x = getSum(4,4);
  int y = getSum(7,9);
  int num = getMax(x,y);
 }
 //需求:定義一個(gè)功能。完成3+4的運(yùn)算。并將結(jié)果返回給調(diào)用者。
 /*
 1,明確功能的結(jié)果:是一個(gè)整數(shù)的和。
 2,在實(shí)現(xiàn)該功能的過程中是否有未知內(nèi)容參與運(yùn)算,沒有。
 其實(shí)這兩個(gè)功能就是在明確函數(shù)的定義。
 1,是在明確函數(shù)的返回值類型。
 2,明確函數(shù)的參數(shù)列表( 參數(shù)的類型和參數(shù)的個(gè)數(shù))。
 */
 
 public static int getSum()
 {
  return 3+4;
 }
 
 /*
 以上這個(gè)函數(shù)的功能,結(jié)果是固定的,毫無擴(kuò)展性而言。
 為了方便用戶需求。由用戶來指定加數(shù)和被加數(shù)。這樣,功能才有意義。
 思路:
 1,功能結(jié)果是一個(gè)和。返回值類型是int。
 2,有未知內(nèi)容參與運(yùn)算。有兩個(gè)。這個(gè)兩個(gè)未知內(nèi)容的類型都是int。
 */
 public static int getSum(int x,int y)
 {
  return x+y;
 }
 
 /*
 需求:判斷兩個(gè)數(shù)是否相同。
 思路:
 1,明確功能的結(jié)果:結(jié)果是:boolean 。
 2,功能是否有未知內(nèi)容參與運(yùn)算。有,兩個(gè)整數(shù)。
 */
 public static boolean compare(int a,int b)
 {
  /*
  if(a==b)
   return true;
  //else
   return false;
  */
  //return (a==b)?true:false;
  return a==b;
 }
 /*
 需求:定義功能,對(duì)兩個(gè)數(shù)進(jìn)行比較。獲取較大的數(shù)。
 */
 public static int getMax(int a,int b)
 {
  /*
  if(a>b)
   return a;
  else
   return b;
   //或者用下面的三元運(yùn)算符
   */
  return (a>b)?a:b;
 }
}

3)   練習(xí):
1,定義一個(gè)功能,用于打印矩形。
2,定義一個(gè)打印99乘法表功能的函數(shù)。
復(fù)制代碼 代碼如下:

class  FunctionTest
{
 public static void main(String[] args)
 {
draw(5,6);
  printHr();
  draw(7,9);
  printHr();
  print99();
 }
 /*
 定義一個(gè)功能,用于打印矩形。
 思路:
 1,確定結(jié)果:沒有,因?yàn)橹苯哟蛴?。所以返回值類型是void
 2,有未知內(nèi)容嗎?有,兩個(gè),因?yàn)榫匦蔚男泻土胁淮_定。
 */
 public static void draw(int row,int col)
 {
  for(int x=0; x<row; x++)
  {
   for(int y=0; y<col; y++)
   {
    System.out.print("*");
   }
   System.out.println();
  }
 }
 public static void printHr()
 {
  System.out.println("------------------------------");
 }
 /*
 定義一個(gè)打印99乘法表功能的函數(shù)。
 */
 public static void print99()
 {
  for(int x=1; x<=9; x++)
  {
   for(int y=1; y<=x; y++)
   {
    System.out.print(y+"*"+x+"="+y*x+"\t");
   }
   System.out.println();
  }
 }
}

三、函數(shù)的重載(overload)
重載的概念:
在同一個(gè)類中,允許存在一個(gè)以上的同名函數(shù),只要它們的參數(shù)個(gè)數(shù)或者參數(shù)類型不同即可。
重載的特點(diǎn):
與返回值類型無關(guān),只看參數(shù)列表。
重載的好處:
方便于閱讀,優(yōu)化了程序設(shè)計(jì)。
重載示例:
返回兩個(gè)整數(shù)的和
int add(int x,int y){return x+y;}
返回三個(gè)整數(shù)的和
int add(int x,int y, int z){return x+y+z;}
返回兩個(gè)小數(shù)的和
double add(double x,double y){return x+y;}
什么時(shí)候用重載?
當(dāng)定義的功能相同,但參與運(yùn)算的未知內(nèi)容不同。
那么,這時(shí)就定義一個(gè)函數(shù)名稱以表示起功能,方便閱讀,而通過參數(shù)列表的不同來區(qū)分多個(gè)同名函數(shù)。
重載范例:
復(fù)制代碼 代碼如下:

class FunctionOverload
{
 public static void main(String[] args)
 {
  add(4,5);
  add(4,5,6);
  print99();
 }
 public static void print99(int num)
 {
  for(int x=1; x<=num; x++)
  {
   for(int y=1; y<=x; y++)
   {
    System.out.print(y+"*"+x+"="+y*x+"\t");
   }
   System.out.println();
  }
 }
 //打印99乘法表
 public static void print99()
 {
  print99(9);
 }
 //定義一個(gè)加法運(yùn)算,獲取兩個(gè)整數(shù)的和。
 public static int add(int x,int y)
 {
  return x+y;
 }
 //定義一個(gè)加法,獲取三個(gè)整數(shù)的和。
 public static int add(int x,int y,int z)
 {
  return add(x,y)+z;
 }
}

練習(xí):區(qū)分是否是重載
復(fù)制代碼 代碼如下:

void show(int a,char b,double c){}
下面的a,b,c,d,e,f與上述一句的區(qū)別:
a.
void show(int x,char y,double z){}//沒有,因?yàn)楹驮瘮?shù)一樣。
b.
int show(int a,double c,char b){}//重載,因?yàn)閰?shù)類型不同。注意:重載和返回值類型沒關(guān)系。
c.
void show(int a,double c,char b){}//重載,因?yàn)閰?shù)類型不同。注意:重載和返回值類型沒關(guān)系。
d.
boolean show(int c,char b){}//重載了,因?yàn)閰?shù)個(gè)數(shù)不同。
e.
void show(double c){}//重載了,因?yàn)閰?shù)個(gè)數(shù)不同。
f.
double show(int x,char y,double z){}//沒有,這個(gè)函數(shù)不可以和給定函數(shù)同時(shí)存在與一個(gè)類中。

如何區(qū)分重載:當(dāng)函數(shù)同名時(shí),只看參數(shù)列表。和返回值類型沒關(guān)系。

相關(guān)文章

  • Java中調(diào)用第三方接口的幾種方法詳細(xì)指南

    Java中調(diào)用第三方接口的幾種方法詳細(xì)指南

    在Java開發(fā)中調(diào)用第三方接口是常見需求,本文介紹如何使用Java進(jìn)行接口調(diào)用,重點(diǎn)講解HttpURLConnection類、OkHttp庫和ApacheHttpClient的使用,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Springboot中設(shè)置時(shí)間格式問題小結(jié)

    Springboot中設(shè)置時(shí)間格式問題小結(jié)

    本文主要介紹了Springboot中設(shè)置時(shí)間格式問題小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • spring的幾個(gè)重要類和接口(詳解)

    spring的幾個(gè)重要類和接口(詳解)

    下面小編就為大家?guī)硪黄猻pring的幾個(gè)重要類和接口(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • java-RGB調(diào)色面板的實(shí)現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類)

    java-RGB調(diào)色面板的實(shí)現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類)

    這篇文章主要介紹了java-RGB調(diào)色面板的實(shí)現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Java的MoreSuppliers工具類方法解析

    Java的MoreSuppliers工具類方法解析

    這篇文章主要介紹了Java的MoreSuppliers工具類方法解析,MoreSuppliers類是一個(gè)Java工具類,它提供了一些增強(qiáng)的Supplier函數(shù),使得Supplier執(zhí)行的結(jié)果可以被緩存,真正的調(diào)用只執(zhí)行一次,需要的朋友可以參考下
    2024-01-01
  • 詳解Java比較器

    詳解Java比較器

    這篇文章主要介紹了Java比較器的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • java?JVM方法分派模型靜態(tài)分派動(dòng)態(tài)分派全面講解

    java?JVM方法分派模型靜態(tài)分派動(dòng)態(tài)分派全面講解

    這篇文章主要為大家介紹了java?JVM方法分派模型靜態(tài)分派動(dòng)態(tài)分派全面講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Spring中Websocket身份驗(yàn)證和授權(quán)的實(shí)現(xiàn)

    Spring中Websocket身份驗(yàn)證和授權(quán)的實(shí)現(xiàn)

    在Web應(yīng)用開發(fā)中,安全一直是非常重要的一個(gè)方面,本文主要介紹了Spring中Websocket身份驗(yàn)證和授權(quán)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • SpringCloud集成zookeeper實(shí)現(xiàn)服務(wù)注冊(cè)并訪問功能

    SpringCloud集成zookeeper實(shí)現(xiàn)服務(wù)注冊(cè)并訪問功能

    zookeeper和eureka一樣,是用于充當(dāng)服務(wù)注冊(cè)功能服務(wù)器的一個(gè)springcloud插件,這篇文章主要介紹了SpringCloud集成zookeeper實(shí)現(xiàn)服務(wù)注冊(cè)并訪問,需要的朋友可以參考下
    2022-06-06
  • java-list創(chuàng)建的兩種常見方式

    java-list創(chuàng)建的兩種常見方式

    本文給大家分享Java-list創(chuàng)建的兩種常見方式,每種方式結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2022-11-11

最新評(píng)論

四平市| 抚宁县| 贵港市| 吴江市| 平遥县| 辉县市| 武功县| 高平市| 漳浦县| 松潘县| 庆阳市| 灵璧县| 麻江县| 巩留县| 太仆寺旗| 始兴县| 青河县| 蒲城县| 渝北区| 易门县| 九龙县| 新泰市| 扶沟县| 石狮市| 佳木斯市| 牙克石市| 肇州县| 沙洋县| 湘潭县| 内黄县| 呼伦贝尔市| 永登县| 渝北区| 沁水县| 胶南市| 兴安盟| 天峻县| 旺苍县| 霸州市| 黑水县| 昌江|