程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java語法基本之函數的應用解釋

Java語法基本之函數的應用解釋

編輯:關於JAVA

Java語法基本之函數的應用解釋。本站提示廣大學習愛好者:(Java語法基本之函數的應用解釋)文章只能為提供參考,不一定能成為您想要的結果。以下是Java語法基本之函數的應用解釋正文


函數
四個方面:
函數的界說
函數的特色
函數的運用
函數的重載

1、函數的界說及特色
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)、為了經由過程稱號便可以明白函數的功效,為了增長代碼的浏覽性。

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

3、函數的重載(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){}//沒有,這個函數弗成以和給定函數同時存在與一個類中。

若何辨別重載:當函數同名時,只看參數列表。和前往值類型沒緊要。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved