java自学方法_JAVA自学 方法
方法的分類(封裝):
帶參數的方法,帶返回值的方法
帶參數的方法:
在某些特殊時候方法在執行的時候需要調用提供值,
例如購買東西,調用處需要傳入的參數:錢,物品名稱
帶參數的方法定義語法結構:
public staitc voi 方法名(形參類型 形參名,形參類型 形參名...){ //空格隔開類型與名, 逗號分割 方法體; }
形參參數:
定義在方法名對應()內,可以定義多個,多個形參參數通過逗號分割,形參參數是特殊的局部變量,作用域在整個方法里;語法:數據類型,參數名 ;
實際參數:調用方法的時候傳入的參數,多個參數通過逗號分割,實際參數需要與要調用的方法形式參數匹配
形參參數與實際參數關系:
方法調用時:實際參數要能匹配形式參數,參數的個數和順序要一致,并且類型兼容(可以自動類型轉換)大轉小需要手動強行類型轉換;
類型兼容:實際參數可以自動類型轉換為形式參數
形式參數與實際參數需要保持:
順序一致,個數一致,類型兼容
方法調用過程:
把實際參數的值賦值給對應方法的形式參數
從對應方法的第一句代碼開始執行方法,方法執行完成,回到方法的調用處
形參實例:
public class Test{
/*//水果*/
public static void main(String []agrs){
eatApple();
eatWatermalen(); //沒有參數時 Test1("蘋果",5);//有參數時 //普通方法的使用并不靈活,不能滿足所有的需求通過帶參數的方法可以使方法的使用變得更加靈活 }
//方法沒有帶參數的弊端情況,需要逐步單個定義方法完成不同的水果 public static void eatApple(){
System.out.println("蘋果");
}
public static void eatWatermalen(){
System.out.println("西瓜");
}
//定義形參參數; public static void Test1(String name int num){
System.out.println("水果是:"+name+"個數"+num);
}
}
帶返回值的方法:
需要返回值,在某些需求情況下,方法執行完成后,需要把執行產生的部分需求數據帶回方法的調用處,這時候需要返回值return:返回
return返回值語法結構:
public static void |返回值類型 方法名 (形參參數,形參名...){ 方法體; return [返回值]; }
設置返回值類型:這里返回值的類型為數據類型,必須把返回值的類型設置為對應的類型,只能自動轉換系統不會強制轉換,
并且所有return的值跟返回類型一樣要兼容;
編寫return返回值:語句時,當前方法執行結束,把需要返回的值帶回方法調用處
帶返回值方法調用:
[返回值類型 變量=] 方法名(實際列表);
有返回值但可以不接受返回值, 但是方法設置了參數,則必須要傳入實際參數
void表示沒有返回值,所以不能接收
調用方法的過程:
把實際參數的值賦值給對應方法的形式參數
從對應方法的第一句代碼開始執行方法
執行到 return 值語句,結束當前方法的執行,帶回值到方法的調用處
有了方法的參數和返回值:方法的使用變得更加靈活,也能更好的實現方法的封裝
返回值實例:
//QQ登陸public class Test{
public static void main(String[]agrs){
boolean result = sum(123456789,12345);//密碼錯誤 System.out.println(result?"登陸成功":"登陸失敗");
}
//定義一個單獨形參方法 public static boolean sum(int qq, int password){//int為類型, boolean為返回值類型,true false //定義QQ號 int rightQQ = 123456789;
//定義密碼 int rightPwd = 123456;
//驗證并返回 if(qq==rightqq){
//再驗證密碼 if(password==rightPwd){
System.out.println("驗證通過,");
return ture;//表示驗證通過 }else{
System.out.println("密碼錯誤,");
return false;
}
}else{
System.out.println("輸入的QQ號錯誤");
return false;
}
}
}
注意點:
類型兼容:
1:return的值可以自動類型轉換為返回值的類型,
2:返回值類型可以自動類型轉換為方法調用處接收變量的類型
return的作用:
1:結束當前方法的調用
2:返回return后面的值
方法有返回值時:
1:那么在方法的內部,所有有可能作為最后執行的代碼的位置都必須有return 值
2:通常是方法最后一句寫return 返回值
方法沒有返回值時:
1:返回值類型必須設置為void
2:void也可以有return語句,return;
3:如果執行到return; 該語句,表示方法調用結束,回到方法調用處
方法的重載:
方法的重載是指一個類中可以定義多個方法名相同,但參數不同的方法
調用時,會根據不同的參數自動匹配對應的方法
構成重載方法:
重載的方法,實際是完全不同的方法,只是名稱相同而已
構成方法重載的條件(兩同三不同):
1.兩同:指同一類當中,同一個方法名。
2.三不同的含義:形參類型、形參個數、形參順序不同
3.只有返回值不同不構成方法的重載
不構成重載:
方法的返回值類型不同不能構成方法的重載
只有參數名稱不同,不構成方法的重載
只有返回值不同,不構成方法的重載
只有形參的名稱不同,不構成方法的重載
public static void main(String[] args){
int sum1 = sum(1,2);
System.out.println("sum1="+sum1);
//調用重載的方法double sum2 = sum(1.1,2.2);
System.out.println("sum2="+sum2);
//三個整數相加int sum3 = sum(1,2,3);
System.out.println("sum3="+sum3);
double sum4 = sum(1,1.2);
System.out.println("sum4="+sum4);
}
//定義重載的方法:加法運算的功能//計算兩個整數相加public static int sum(int a,int b){
return a+b;
}
//兩個小數相加:參數類型不同 - 重載public static double sum(double a,double b){
return a+b;
}
//三個整數相加:參數個數不同public static int sum(int a,int b,int c){
return a+b+c;
}
//參數順序不同 - 參數名的順序不同并不能構成方法的重載/*public static int sum(int b,int a){// 錯誤: 已在類 Test1中定義了方法 sum(int,int)return a+b;}*/
//參數順序不同:本質還是參數類型不同public static double sum(int a,double b){
return a+b;
}
public static double sum(double a,int b){
return a+b;
}
//方法的返回值類型不同能不能構成方法的重載? 不能/*public static double sum(int a,int b){return a+b;}*/
遞歸結構:
遞歸的本質是:方法自己調用自己
但是如果方法直接調用自己,則必然造成死循環
定義遞歸頭避免死循環(遞歸的結束條件),
如果想要使用遞歸,則需要通過一定的方式來控制方法的自調用
遞歸類似于循環:
1:遞歸頭:控制方法的調用。(類似于循環條件)(遞歸的結束條件),
2:遞歸體:方法要執行的功能代碼(類似于循環體)(需要調用自身方法)
3:迭代語句:控制遞歸調用的次數(類似于步進語句)
注意使用:任何能用遞歸解決的問題也能使用迭代解決
在要求高性能的情況下盡量避免使用遞歸,遞歸調用既花時間又耗內存
public static void main(String[] args){
print(10);
}
//打印十個Helloworldpublic static void print(int n){//n:表示遞歸調用的次數//打印一個Helloworld - 遞歸體System.out.println("Helloworld");
//print(n-1);不能直接調用,會造成死循環//遞歸頭:控制方法的調用if(n>1){
//遞歸調用方法print(n-1);//傳入參數n-1,因為以及打印果一個Helloworld}else{
//結束方法return;
}
}
總結
以上是生活随笔為你收集整理的java自学方法_JAVA自学 方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 元气骑士没有手柄怎么解锁机器人_机器人怎
- 下一篇: java 线程池 状态_【Java多线程