零基礎學Java——小白的Java之路

方法是一段可以重複調用的代碼塊,這個代碼塊實現了某個功能,當我們的程序中需要這一個功能的時候,調用這個方法即可,不再需要重複書寫這個功能的代碼。

方法的定義格式

public static  ( ,... ){
 
 方法體;
 [return 表達值]
 注意:返回值類型為void的時候,方法沒有返回值,return可以省略
}

格式說明:

public 表示公共的,修飾的方法可以在任意類中使用。

static 表示靜態的,修飾的方法可以通過類名直接調用,如若在同一個類中,類名可以省略,直接通過方法名調用。

返回值類型 表示通過調用方法可以得到的結果的數據類型,它可以是Java數據類型中的任意數據類型。

void是個特殊的返回值類型,它表示這個方法完成功能,但是不返回,所以當返回值類型為void的時候,return可以省略。

如果返回值是某個具體的數據類型,則表示這個方法完成後會返回一個具體值,那麼在方法體的最後需要用一個return語句返回這個值。

方法名稱 表示方法的名字,應該符合標識符規範

參數列表 表示這個方法要完成功能需要參照的數據。

定義方法時稱作形參,調用方法時需要給出具體的參數值稱作實參。實參與形參一一對應。

一個方法可以有多個參數,用逗號隔開。如:

參數類型1 參數名字1,參數類型2 參數名字2……

方法體 放在{}中,是實現方法功能的代碼塊。

如果方法不包含參數,且沒有返回值,我們稱為無參無返回值的方法。

方法的使用分為兩步:

第一步,定義方法

例如:下面代碼定義了一個方法名為 show ,沒有參數,且沒有返回值的方法,執行的操作為輸出 “ welcome to Java. ”

零基礎學Java——小白的Java之路

注意:

方法體放在一對大括號中,實現特定的操作

方法名主要在調用這個方法時使用,需要注意命名的規範,一般採用第一個單詞首字母小寫,其它單詞首字母大寫的形式

第二步,調用方法

當需要調用方法執行某個操作時,可以先創建類的對象,然後通過 對象名.方法名(); 來實現

例如:在下面的代碼中,我們創建了一個名為 hello 的對象,然後通過調用該對象的 show( ) 方法輸出信息

public class HelloWorld {
 
 public static void main(String[] args) {
 // 創建對象,對象名為hello
 HelloWorld hello = new HelloWorld();
 
 // 調用方法
 hello.show();
 }
 
 //定義方法
 public void show() {
 System.out.println("Welcome to Java.");
 }
}

運行結果為:Welcome to Java.

如果方法不包含參數,但有返回值,我們稱為無參帶返回值的方法。

例如:下面的代碼,定義了一個方法名為 calSum ,無參數,但返回值為 int 類型的方法,執行的操作為計算兩數之和,並返回結果

public int calcSum{
 int a=5;
 int b=12;
 int sum=a+b;
 return sum;
 
}

在 calSum( ) 方法中,返回值類型為 int 類型,因此在方法體中必須使用 return 返回一個整數值。

調用帶返回值的方法時需要注意,由於方法執行後會返回一個結果,因此在調用帶返回值方法時一般都會接收其返回值並進行處理。如:

public class HelloWorld {
 
 public static void main(String[] args) {
 
 // 創建名為hello的對象
 HelloWorld hello = new HelloWorld();
 
 // 調用方法並接收方法的返回值,保存在變量sum中
 int sum = hello.calcSum();
 
 System.out.println("和為:" + sum);
 }
 
 // 定義無參帶返回值的方法
 public int calcSum() {
 
 int a= 5;
 int b =12;
 int sum =a + b;
 
 // 使用return返回值
 return sum;
 
 }
}

運行結果為:和為:17

不容忽視的“小陷阱”:

1、 如果方法的返回類型為 void ,則方法中不能使用 return 返回值!

public void showInfo(){
 return "Java";
}

2、 方法的返回值最多隻能有一個,不能返回多個值

public int getInfo(){
 int score1=94;
 int score2=87;
 return score1,score2;
}

3、 方法返回值的類型必須兼容,例如,如果返回值類型為 int ,則不能返回 String 型值

public int getInfo(){
 String name="java";
 return name;
}

有時方法的執行需要依賴於某些條件,換句話說,要想通過方法完成特定的功能,需要為其提供額外的信息才行。例如,現實生活中電飯鍋可以實現“煮飯”的功能,但前提是我們必須提供食材,如果我們什麼都不提供,那就真是的“巧婦難為無米之炊”了。我們可以通過在方法中加入參數列表接收外部傳入的數據信息,參數可以是任意的基本類型數據或引用類型數據。

我們先來看一個帶參數,但沒有返回值的方法:

public void show(String name){
 System.out.println("歡迎您,"+name);
}

上面的代碼定義了一個 show 方法,帶有一個參數 name ,實現輸出歡迎消息。

調用帶參方法與調用無參方法的語法類似,但在調用時必須傳入實際的參數值

對象名.方法名(實參1,實參2,......,實參n)

很多時候,我們把定義方法時的參數稱為形參,目的是用來定義方法需要傳入的參數的個數和類型;把調用方法時的參數稱為實參,是傳遞給方法真正被處理的值。

一定不可忽視的問題:

1、 調用帶參方法時,必須保證實參的數量、類型、順序與形參一一對應

2、 調用方法時,實參不需要指定數據類型

3、 方法的參數可以是基本數據類型,如 int、double 等,也可以是引用數據類型,如 String、數組等

4、 當方法參數有多個時,多個參數間以逗號分隔

如果方法既包含參數,又帶有返回值,我們稱為帶參帶返回值的方法。

例如:下面的代碼,定義了一個 show 方法,帶有一個參數 name ,方法執行後返回一個 String 類型的結果

public String show(String name){
 return "歡迎你,"+name;
}

調用帶參帶返回值的方法:

HelloWorld hello =new HelloWorld();
String welcome =hello.show("java");
System.out.println(welcome);

結果為:歡迎你,java

字符串

在程序開發中字符串無處不在,如用戶登陸時輸入的用戶名、密碼等使用的就是字符串。其實,在前面的章節中我們就已經使用了字符串,例如我們在控制檯中輸出的 "Hello World"

在 Java 中,字符串被作為 String 類型的對象處理。 String 類位於 java.lang 包中。默認情況下,該包被自動導入所有的程序。

創建 String 對象的方法:

String s1="java";
String s2=new String();
String s3=new String("java");

String 對象創建後則不能被修改,是不可變的,所謂的修改其實是創建了新的對象,所指向的內存空間不同。

String 類提供了許多用來處理字符串的方法,例如,獲取字符串長度、對字符串進行截取、將字符串轉換為大寫或小寫、字符串分割等,下面我們就來領略它的強大之處吧。

String 類的常用方法:

零基礎學Java——小白的Java之路

結合代碼來熟悉一下方法的使用:

零基礎學Java——小白的Java之路

零基礎學Java——小白的Java之路

運行結果:

零基礎學Java——小白的Java之路

零基礎學Java——小白的Java之路

友情提示:

1. 字符串中字符的索引從0開始,範圍為 0 到 字符串長度-1

2. 使用 indexOf 進行字符或字符串查找時,如果匹配返回位置索引;如果沒有匹配結果,返回 -1

3. 使用 substring(beginIndex , endIndex) 進行字符串截取時,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符

那麼,“==” 和 equals() 有什麼區別呢?

==: 判斷兩個字符串在內存中首地址是否相同,即判斷是否是同一個字符串對象

equals(): 比較存儲在兩個字符串對象中的內容是否一致

PS:字節是計算機存儲信息的基本單位,1 個字節等於 8 位gbk 編碼中 1 個漢字字符存儲需要 2 個字節1 個英文字符存儲需要 1 個字節。所以我們看到上面的程序運行結果中,每個漢字對應兩個字節值,如“學”對應 “-47 -89” ,而英文字母 “J” 對應 “74” 。同時,我們還發現漢字對應的字節值為負數,原因在於每個字節是 8 位,最大值不能超過 127,而

漢字轉換為字節後超過 127,如果超過就會溢出,以負數的形式顯示。

在Java中,除了可以使用 String 類來存儲字符串,還可以使用 StringBuilder 類或 StringBuffer 類存儲字符串,那麼它們之間有什麼區別呢?

String 類具有是不可變性。

程序運行時會額外創建一個對象,保存數據,當頻繁操作字符串時,就會額外產生很多臨時變量。使用 StringBuilder 或 StringBuffer 就可以避免這個問題。至於 StringBuilder 和StringBuffer ,它們基本相似,不同之處,StringBuffer 是線程安全的,而 StringBuilder 則沒有實現線程安全功能,所以性能略高。因此一般情況下,如果需要創建一個內容可變的字符串對象,應優先考慮使用 StringBuilder 類。

那麼如何定義 StringBuilder 類的對象呢? 我們來看下面的代碼:

// 創建一個StringBuilder對象,用來存儲字符串
StringBuilder hobby=new StringBuilder("java");
StringBuilder 類提供了很多方法來操作字符串:
零基礎學Java——小白的Java之路

例如:在下面的示例代碼中,創建了 StringBuilder 對象,用來存儲字符串,並對其做了追加和插入操作。這些操作修改了 str 對象的值,而沒有創建新的對象,這就是 StringBuilder 和 String 最大的區別。

零基礎學Java——小白的Java之路

運行結果:

零基礎學Java——小白的Java之路


分享到:


相關文章: