亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java語法基礎之函數的使用說明

2019-11-26 16:01:36
字體:
來源:轉載
供稿:網友

函數
四個方面:
函數的定義
函數的特點
函數的應用
函數的重載

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

返回值類型:函數運行后的結果的數據類型
參數類型:是形式參數的數據類型
形式參數:是一個變量,用于存儲調用函數時傳遞給函數的實際參數
實際參數:傳遞給形式參數的具體數值
return:用于結束函數
返回值:該值會返回給調用者
3) 函數的特點
a) 定義函數可以將功能代碼進行封裝
b) 便于對該功能進行復用
c) 函數只有被調用才會被執行
d) 函數的出現提高了代碼的復用性
e) 對于函數沒有具體返回值的情況,返回值類型用關鍵字void表示,那么該函數中的return語句如果在最后一行可以省略不寫,系統會幫你自動加上。
注:
a) 函數中只能調用函數,不可以在函數內部定義函數。
b) 定義函數時,函數的結果應該返回給調用者,交由調用者處理。
c) 當函數運算后,沒有具體的返回值時,這是返回值類型用一個特殊的關鍵字來標識該關鍵字就是void,void:代表的是函數沒有具體返回值的情況。
d)  當函數的返回值類型是void時,函數中的return語句可以省略不寫。
4)  如何定義一個函數?
    函數其實就是一個功能,定義函數就是實現功能,通過兩個明確來完成:
       1)、明確該功能的運算完的結果,其實是在明確這個函數的返回值類型。
       2)、在實現該功能的過程中是否有未知內容參與了運算,其實就是在明確這個函數的參數列表(參數類型&參數個數)。
5) 函數的作用:
1)、用于定義功能。
2)、用于封裝代碼提高代碼的復用性。
注意:函數中只能調用函數,不能定義函數。
6) 主函數:
    1)、保證該類的獨立運行。
    2)、因為它是程序的入口。
    3)、因為它在被jvm調用。
7) 函數定義名稱是為什么呢?
答:1)、為了對該功能進行標示,方便于調用。
    2)、為了通過名稱就可以明確函數的功能,為了增加代碼的閱讀性。

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

復制代碼 代碼如下:

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);
 }
}

發現以上的運算,因為獲取不同數據的運算結果,代碼出現了重復。
為了提高代碼的復用性。對代碼進行抽取。將這個部分定義成一個獨立的功能。方便與日后使用。
java中對功能的定義是通過函數的形式來體現的。
明確功能:需要定義功能,完成一個整數的*3+5的運算,

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

復制代碼 代碼如下:

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

對上述關于return是否省略這一小小知識點的總結:
當函數運算后,沒有具體的返回值時,這是返回值類型用一個特殊的關鍵字來標識。
該關鍵字就是void。void:代表的是函數沒有具體返回值的情況。
當函數的返回值類型是void時,函數中的return語句可以省略不寫。

舉例2:

復制代碼 代碼如下:

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);
 }

 /*下面的這個功能定義思想有問題,為什么呢?因為只為完成加法運算,至于是否要對和進行打印操作,
 那是調用者的事,不要在該功能中完成。*/
 public static void get(int a,int b)
 {
  System.out.println(a+b);
  return ;
 }
}

如何定義一個函數呢?
    1,既然函數是一個獨立的功能,那么該功能的運算結果是什么先明確
       因為這是在明確函數的返回值類型。
    2,在明確在定義該功能的過程中是否需要未知的內容參與運算。
       因為是在明確函數的參數列表(參數的類型和參數的個數)。
復制代碼 代碼如下:

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);
 }
 //需求:定義一個功能。完成3+4的運算。并將結果返回給調用者。
 /*
 1,明確功能的結果:是一個整數的和。
 2,在實現該功能的過程中是否有未知內容參與運算,沒有。
 其實這兩個功能就是在明確函數的定義。
 1,是在明確函數的返回值類型。
 2,明確函數的參數列表( 參數的類型和參數的個數)。
 */

 public static int getSum()
 {
  return 3+4;
 }

 /*
 以上這個函數的功能,結果是固定的,毫無擴展性而言。
 為了方便用戶需求。由用戶來指定加數和被加數。這樣,功能才有意義。
 思路:
 1,功能結果是一個和。返回值類型是int。
 2,有未知內容參與運算。有兩個。這個兩個未知內容的類型都是int。
 */
 public static int getSum(int x,int y)
 {
  return x+y;
 }

 /*
 需求:判斷兩個數是否相同。
 思路:
 1,明確功能的結果:結果是:boolean 。
 2,功能是否有未知內容參與運算。有,兩個整數。
 */
 public static boolean compare(int a,int b)
 {
  /*
  if(a==b)
   return true;
  //else
   return false;
  */
  //return (a==b)?true:false;
  return a==b;
 }
 /*
 需求:定義功能,對兩個數進行比較。獲取較大的數。
 */
 public static int getMax(int a,int b)
 {
  /*
  if(a>b)
   return a;
  else
   return b;
   //或者用下面的三元運算符
   */
  return (a>b)?a:b;
 }
}

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

class  FunctionTest
{
 public static void main(String[] args)
 {
draw(5,6);
  printHr();
  draw(7,9);
  printHr();
  print99();
 }
 /*
 定義一個功能,用于打印矩形。
 思路:
 1,確定結果:沒有,因為直接打印。所以返回值類型是void
 2,有未知內容嗎?有,兩個,因為矩形的行和列不確定。
 */
 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("------------------------------");
 }
 /*
 定義一個打印99乘法表功能的函數。
 */
 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();
  }
 }
}

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

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);
 }
 //定義一個加法運算,獲取兩個整數的和。
 public static int add(int x,int y)
 {
  return x+y;
 }
 //定義一個加法,獲取三個整數的和。
 public static int add(int x,int y,int z)
 {
  return add(x,y)+z;
 }
}

練習:區分是否是重載
復制代碼 代碼如下:

void show(int a,char b,double c){}
下面的a,b,c,d,e,f與上述一句的區別:
a.
void show(int x,char y,double z){}//沒有,因為和原函數一樣。
b.
int show(int a,double c,char b){}//重載,因為參數類型不同。注意:重載和返回值類型沒關系。
c.
void show(int a,double c,char b){}//重載,因為參數類型不同。注意:重載和返回值類型沒關系。
d.
boolean show(int c,char b){}//重載了,因為參數個數不同。
e.
void show(double c){}//重載了,因為參數個數不同。
f.
double show(int x,char y,double z){}//沒有,這個函數不可以和給定函數同時存在與一個類中。

如何區分重載:當函數同名時,只看參數列表。和返回值類型沒關系。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人女保姆的销魂服务| 国产精品一区二区av影院萌芽| 国产精品视频网址| 国产综合色香蕉精品| 国产一区二区动漫| 亚洲欧美日韩国产精品| 69国产精品成人在线播放| 欧美日韩国产丝袜另类| 久久精品视频在线| 国产suv精品一区二区三区88区| 最新69国产成人精品视频免费| 高跟丝袜一区二区三区| 久热精品视频在线观看| 国产精品最新在线观看| 久久久久久久久国产精品| 国产精品高潮呻吟久久av无限| 欧美激情xxxx性bbbb| 日本不卡高字幕在线2019| 亚洲男人天堂手机在线| 亚洲男人天堂网站| 国内精品国产三级国产在线专| 国产精品99导航| 国产精品999| 国产精品专区一| 日韩成人激情在线| 国产精品美女久久久久久免费| 日本不卡免费高清视频| 国产久一一精品| 中文字幕国产亚洲| 91精品国产综合久久香蕉922| 欧美洲成人男女午夜视频| 91av视频在线播放| 奇米成人av国产一区二区三区| 国产精品福利在线| 亚洲国产欧美一区二区三区同亚洲| 国产精品美女免费看| 国产精品羞羞答答| 中文精品99久久国产香蕉| 亚洲色图第三页| 日韩美女主播视频| 91精品国产777在线观看| 亚洲影视九九影院在线观看| 日韩一区二区在线视频| 欧美日韩国产一区在线| 欧美亚洲日本网站| 国内精品久久久久影院 日本资源| 欧美xxxx14xxxxx性爽| 亚洲在线视频观看| 亚洲欧美日本精品| 久久夜精品香蕉| 一区二区三区 在线观看视| 国产美女久久久| 亚洲一区二区久久久久久| 成人激情在线观看| 亚洲精选在线观看| 亚洲级视频在线观看免费1级| 色婷婷av一区二区三区在线观看| 亚洲第一视频网站| 亚洲综合色激情五月| 国产日韩欧美电影在线观看| 精品久久久久久久久久久久久| 57pao国产精品一区| 最近中文字幕日韩精品| 欧美日韩另类在线| 成人伊人精品色xxxx视频| 国产精品视频在线观看| 69影院欧美专区视频| 亚洲国产精久久久久久| 欧美成人免费在线视频| 亚洲国产精品一区二区久| 日韩免费高清在线观看| 最近中文字幕mv在线一区二区三区四区| 欧美精品福利视频| 欧美尤物巨大精品爽| 亚洲色在线视频| 国内精久久久久久久久久人| 97超碰国产精品女人人人爽| 色小说视频一区| 欧美在线精品免播放器视频| 亚洲美女又黄又爽在线观看| 日韩在线视频中文字幕| 亚洲欧洲午夜一线一品| 欧美中文在线免费| 日韩在线免费av| 欧美精品做受xxx性少妇| 91久久精品一区| 久久99青青精品免费观看| 亚洲午夜av电影| 亚洲人成在线免费观看| 国内免费精品永久在线视频| 亚洲图片欧美日产| 亚洲天堂色网站| 亚洲午夜女主播在线直播| 亚洲护士老师的毛茸茸最新章节| 欧美色道久久88综合亚洲精品| 国产小视频91| 91精品国产91久久久| 日韩网站免费观看| 欧美天天综合色影久久精品| 午夜精品一区二区三区在线视| 亚洲欧美另类人妖| 亚洲电影免费观看高清完整版在线| 欧美成人免费全部| 日本在线观看天堂男亚洲| 一本色道久久综合亚洲精品小说| 最近的2019中文字幕免费一页| 日韩精品福利网站| 孩xxxx性bbbb欧美| 亚洲精品有码在线| 国产精品久久久久免费a∨| 欧美成人sm免费视频| 8050国产精品久久久久久| 91情侣偷在线精品国产| 成人免费网站在线看| 97国产在线观看| 国产日韩专区在线| 欧美日韩一区二区免费在线观看| 亚洲aaaaaa| 美女久久久久久久| 国产精品成人在线| 久久久精品国产亚洲| 久久久亚洲精品视频| 精品久久久一区二区| 在线亚洲国产精品网| 欧美电影免费看| 久久久精品一区二区三区| 欧美性生活大片免费观看网址| 超碰97人人做人人爱少妇| 57pao国产成人免费| 久久影院资源站| 国产一区在线播放| 国产精品成av人在线视午夜片| 欧美丰满少妇xxxxx做受| 亚洲欧洲美洲在线综合| 欧美精品videos另类日本| 欧美日韩国产激情| 亚洲美女自拍视频| 超碰日本道色综合久久综合| 日韩黄色高清视频| 国产午夜精品全部视频在线播放| 亚洲自拍欧美另类| 伦理中文字幕亚洲| 清纯唯美日韩制服另类| 亚洲91精品在线观看| 成人国产亚洲精品a区天堂华泰| 国产精品一区电影| 成人一区二区电影| 精品久久久香蕉免费精品视频| 国产69精品久久久| 欧美日韩另类字幕中文| 在线电影中文日韩| 欧美性高潮床叫视频| 国产中文欧美精品| 久久视频这里只有精品| 欧美激情国产高清| 欧美风情在线观看| 激情亚洲一区二区三区四区| 91久久国产婷婷一区二区| 欧美超级免费视 在线| 欧美成人午夜剧场免费观看| 久久在线观看视频| 亚洲国产欧美一区二区三区久久| 国产精品人人做人人爽| 97国产一区二区精品久久呦|