java的函數,java的函數式接口

本文目錄一覽:

java中是否有函數概念

方法是一個類中的,也就是說給類創建一個對象,而這個方法是屬於這個對象的。而函數並不是方法,比如在JS中,函數直接聲明,就可以通過調用來執行,而它並不屬於一個對象。但是,在Java中,屬性和方法都是屬於一個類的,因此,準確來說,在Java中,沒有函數概念,也盡量不要用函數來稱呼Java方法。個人理解,勿噴

Java中如何調用函數和自定義函數

調用函數

System.out.println(“hello world”);

println即為函數,out為是輸出對象,System為java系統類。

java是面向對象語言,調用非靜態方法時,需要創建一個類的對象才能調用方法;

調用靜態方法時,直接用類名調用即可。

import java.util.Array; //調用其他包下的方法時需要導包

Array.sort(arr); //Array是工具類,方法都為靜態方法

定義函數

修飾符 返回值類型 方法名(參數類型 參數名){

方法體

…  

return 返回值

;}

方法包含一個方法頭和一個方法體。下面是一個方法的所有部分:

修飾符:修飾符,這是可選的,告訴編譯器如何調用該方法。定義了該方法的訪問類型。

返回值類型 :方法可能會返回值。returnValueType 是方法返回值的數據類型。有些方法執行所需的操作,但沒有返回值。在這種情況下,returnValueType 是關鍵字void。

方法名:是方法的實際名稱。方法名和參數表共同構成方法簽名。

參數類型:參數像是一個佔位符。當方法被調用時,傳遞值給參數。這個值被稱為實參或變量。參數列表是指方法的參數類型、順序和參數的個數。參數是可選的,方法可以不包含任何參數。

方法體:方法體包含具體的語句,定義該方法的功能。

注意: 在一些其它語言中方法指過程和函數。一個返回非void類型返回值的方法稱為函數;一個返回void類型返回值的方法叫做過程。

拓展內容

java

Java源程序(.java文件)——java字節碼文件(.class文件)——由解釋執行器(java.exe)將字節碼文件加載到java虛擬機(jvm)——字節碼文件(.class)就會在java虛擬機中執行。

Java的基本包

java.lang 其中包含有:

接口:Comparable、Cloneable、Runable等

類:八個基本數據類型封裝類、Math、Runtime、Object、String、StringBuffer、Thread、Exception等

java 構造方法 函數

java的構造函數其實很簡單。

一個類 被實例化 也就是被new的時候 最先執行的是 構造函數,如果你有留心。你會發現很多類裡面根本沒有寫構造函數。

在java類中,如果不顯示聲明構造函數,JVM 會給該類一個默認的構造函數。一個類 可以有多個構造函數。構造函數的主要作用 一是用來實例化該類。二是 讓該類實例化的時候執行哪些方法,初始化哪些屬性。當一個類聲明了構造函數以後,JVM 是不會再給該類分配默認的構造函數。

比如一個實體類

public class entity{

private int id;

private String userName;

get…set..方法

}

如果這樣寫該類就是默認的構造函數。該類實例化的時候 id 和 username 就是默認值 即 id=0,username=null.

如果在裡面加入這樣一個方法

public entity(int id,String userName){

調用get..set..

}

如果這樣寫 該類實例化的時候 必須給出 id 和username參數。 JVM不會再給這個類默認構造函數

你也可以理解成 在沒有給構造函數的時候 JVM 給你的類加了一個這樣的函數

public entity(){

this.id=0;

this.userName=null;

}

其實構造函數是用來對一個類以及變量進行實例化。

java中都有哪些函數

Java里的函數多的數不過來,常用的函數有equals(),toString(),compare(),分別用於比較是否相等、輸出對象信息、比較兩個對象。函數的功能是用於完成某些需要完成的任務。

java中基礎函數問題

一、函數的定義及特點

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(ab)

return a;

else

return b;

//或者用下面的三元運算符

*/

return (ab)?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; xrow; x++)

{

for(int y=0; ycol; 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){}//沒有,這個函數不可以和給定函數同時存在與一個類中。

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

java函數是什麼意思?

函數就是一個動作一個行為哈,比如殺人防火這個動作,那就需要寫兩個函數,一個函數是殺人另一個函數是放火。

在寫函數時,只需要關注函數的返回值和參數就可以了,比如兩個數相加的函數,那參數肯定就是2個數,我要實現那兩個數的相加,那返回值就是兩個數的之和。

只要明白了上面的東西,函數的寫法就很容易了。

第一個是寫函數訪問修飾符

後面是函數的返回值

函數名稱(參數列表)

{

函數體(就是要實現函數的功能)

}

原創文章,作者:EKLE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/142433.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EKLE的頭像EKLE
上一篇 2024-10-11 11:42
下一篇 2024-10-11 11:42

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29

發表回復

登錄後才能評論