方法:完成特定功能的代碼塊
注意:在很多語言里面有函數的定義,而在Java中函數被稱為方法。
方法格式:
修飾符 返回值類型+ 方法名 (參數類型 參數名1,參數類型 參數名2...){
方法體語句;
return 返回值;
}
詳細解釋:
修飾符:目前就用public static。
返回值類型:就是功能結果的數據類型。
方法名:符合命名規則即可。方便我們的調用。
參數:
實際參數:就是實際參與運算的。
形式參數;就是方法定義上的,用於接收實際參數的。
參數類型:就是參數的數據類型
參數名:就是變量名
方法體語句:就是完成功能的代碼。
return:結束方法的。
返回值:就是功能的結果,由return帶給調用者。
要想寫好一個方法,就必須明確兩個東西:
A:返回值類型
結果的數據類型
B:參數列表
你要傳遞幾個參數,以及每個參數的數據類型
需求:求兩個數據之和的案例
方法的執行特點:
不調用,不執行。
如何調用呢?(有明確返回值的調用)
A:單獨調用,一般來說沒有意義,所以不推薦。
B:輸出調用,但是不夠好。因為我們可能需要針對結果進行進一步的操作。
C:賦值調用,推薦方案。
class FunctionDemo {
public static void main(String[] args) {
int x = 10;
int y = 20;
//方式1:單獨調用
//sum(x,y);
//方式2:輸出調用
//System.out.println(sum(x,y));
//System.out.println(30);
//方式3:賦值調用
int result = sum(x,y);
//result在這里可以進行操作
System.out.println(result);
}
/*
需求:求兩個數據之和的案例
兩個明確:
返回值類型:int
參數列表:2個,都是int類型。
*/
public static int sum(int a,int b) {
//如何實現呢?
//int c = a + b;
//return c;
//c就是a+b,所以,我可以直接返回a+b
return a + b;
方法的注意事項:
A:方法不調用不執行。
B:方法與方法是平級關系。
C:方法定義的時候參數之間用逗號隔開。
D:方法調用的時候不用再傳遞數據類型。
E:如果方法有明確的的返回值,一定要有return帶回一個值。
方法的形式參數是類名的時候如何調用:
/*
形式參數的名字問題:
基本類型:形式參數的改變不影響實際參數
引用類型:形式參數的改變直接影響實際參數
*/
//形式參數是基本類型
class Demo{
public int sum(int a,int b){
return a+b;
}
}
//形式參數是引用類型
class Student {
public void show(){
System.out.println("我愛學習");
}
}
class StudentDemo{
//如果你看到了一個方法的形式參數是一個類類型(引用類型),這里其實需要的是該類的對象
public void method(Student s){//調用的時候,把main方法中s的地址傳遞到了這里
s.show();
}
}
class ArgsTest{
public static void main(String[] args){
//形式參數是基本類型的調用
Demo d = new Demo();
int result = d.sum(10,20);
System.out.println("result:"+result);
//形式參數是引用類型的調用
//需求:我要調用StudentDemo類中method()方法
SutdentDemo sd = new StudentDemo();
//創建學生類對象
Student s = new Student();
sd.method(s);//把s的地址給到了
}
}
成員方法的分類及使用:
成員方法:
1.void類型
2.非void類型
3.空參方法
4.非空參方法
class Student{
public String getString(){ //無參有返回
return "helloworld";
}
public void show(){ //無參無返回
System.out.println("show");
}
public void method(String name){ //帶參無返回
System.out.println("name");
}
public String function(String s1,String s2){ //帶參有返回
return s1+s2;
}
}
class Test{
Student s = new Student();
//無參有返回
String result = s.getString();
System.out.println(result);
//無參無返回
s.show();
//帶參無返回
s.method("需要傳參");
//帶參帶返回
String result2 = s.function("hello","world");
System.out.println(result2);
}