java中的方法
java中的方法
1、方法
-
1.1 什麼是方法?
(method 在c語言中又被稱為函式)就是可以重複利用完成某個特定功能的程式碼片段。 -
1.2 定義
- [] 中括號,裡面的內容不是必須的,是可選的。
- 語法機制:[修飾符列表] 返回值型別 方法名(形參列表){
方法體;
} - 修飾符列表先統一寫成:public static
- 返回值型別 :
- 1.基本資料型別
- 2.引用資料型別
- 什麼叫返回值:
- 方法結束後的結果,一般會是一個資料。
方法就是為了完成某個特定的結果。
- 方法結束後的結果,一般會是一個資料。
-
1.3 當一個方法結束 不返回任何型別時,也不能為空,用void。
-
1.4 方法必須呼叫才能執行。
-
類名.方法名(實參列表);
-
//計算兩個int型別的 商。 public static int Shang(int a,int b){ int jieguo = a/b; return jieguo;//或者直接 return a/b; } public static void divided(int x,int y){ System.out.println(x/y); } //當一個方法有返回值時,也可以不接收,但是沒有意義。返回後記憶體馬上釋放, 因為沒有接收。 public class PrintTest{ public static void main(String[] args){ print(); } public static void print(){ System.out.println("輸出一個語句"); } }
-
//注意:呼叫程式 不一定得在main 方法中,其他方法也可以呼叫。 public class Test{ public static void main(String[] args){ m(); } public static void m(){ n(); } public static void n(){ m(); } public static void l(){ m(); n(); l(); return; } } 方法體中 程式碼執行順序 依次執行,自上而下。main方法其實也只是一種普通的方法。 只不過main 方法是jvm中的,作為程式的入口。
-
-
2、break 和 return 的區別。
-
public class ForTest{ public static void main(String[] args){ for(int i = 1;i <= 10;i++){ if(i == 3){ break;//終止for迴圈 return ;// 終止的是方法,執行了的話程式結束,不會輸出“cao”。 } System.out.println(i); } System.out.println("cao"); } } break 語句 只能使用在 switch 分支 還有迴圈中。
-
-
3、編譯與執行
-
編譯器只負責編譯,編譯器只知道 flag 是boolean 型別,不能確定flag是真是假,故而認為缺少返回語句。編譯器不負責執行。
-
public static int m(){ boolean flag = true; if(flag){ return 1; } }
-
return 語句一旦執行 方法結束。所以在同一個作用域下 return 語句下方 不可以寫程式碼。
-
-
**4、jvm 三塊主要記憶體區:堆 棧 方法區 **
-
1.方法區:類載入器(classloader)將硬碟中的xxx.class位元組碼檔案裝載到jvm當中的時候,會將位元組碼檔案存放到方法區中。也就是方法區存放的是 程式碼片段。因為類需要載入,所以方法區最先有資料。
-
2.方法:在呼叫時會在 棧(stack)記憶體中分配空間。
-
資料結構 通常 是指儲存資料的容器。一種非常經典的資料結構(stack)。
-
壓棧(push)
-
出棧(pop)
棧頂元素(棧幀 永遠指向棧頂元素):處於棧頂部元素 具有活躍權。
先進後出
-
-
區域性變數只在方法體中 有效。方法結束後 區域性變數的記憶體就釋放了。也就是彈棧。
-
注意:方法不呼叫是不會在棧記憶體中開闢空間的,呼叫就是壓棧。
-
棧儲存了方法執行所需要的空間,還會儲存方法的區域性變數。
-
-
5、方法過載
-
-
1.整齊 美觀
-
2.功能相似,可以讓方法名字相同
-
-
java 語言怎麼進行方法區分?
- 答:先從方法名區分,再從引數型別進行區分。
-
3、什麼時候使用過載?也就是功能相似,方法名相同,引數型別不同(注意要在同一個類中)
-
- 答:同一個類中,如果功能1和功能2 相似,可以考慮 方法名一致。
- 三個條件:1.同一個類
2.功能相似
3.引數列表不同
-
- 注意:方法的返回值型別和過載無關。與修飾符列表也沒有關係,只與引數列表相關。
- 而且println 肯定過載了,引數型別隨便傳。
-
-
6、方法遞迴
-
-
遞迴沒有結束條件的時候,會發生棧記憶體溢位。(stackoverflowerror)
-
假設結束條件是對的,因為可能遞迴太深了,依然會炸棧。
能用迴圈 儘量用迴圈,因為迴圈效率高,耗費記憶體小。可能會導致jvm退出。但極少情況下,有些程式不用遞迴無法實現。 -
//使用遞迴 方法 編寫 1-n 的和。 public static int sum(int n){ if(n == 1){ return 1; } return n + sum(n-1); } //使用遞迴的方法計算n 的階乘。 public static int result(int n){ if(n==1){ return 1; } return n * result(n-1); }
-
7、物件導向和麵向過程的區別。
-
c 語言:完全程式導向(因果關係)。沒有物件的概念,只有步驟。耦合度 :太高,
擴充套件性 :太低。(關注的是步驟) -
- java: 完全物件導向。
-
-
物件導向 就是將世界分成不同的單元,然後每一個單元都實現成物件,然後給個環境
驅動一下,讓物件之間協作起來形成一個系統。 -
OOA:分析
OOD:設計
OOP:程式設計 OO:物件導向
-
擴充套件性 :太低。(關注的是步驟)
-
- java: 完全物件導向。
-
-
物件導向 就是將世界分成不同的單元,然後每一個單元都實現成物件,然後給個環境
驅動一下,讓物件之間協作起來形成一個系統。 -
OOA:分析
OOD:設計
OOP:程式設計 OO:物件導向
-
相關文章
- Java 中的方法引用Java
- Java集合中的排序方法Java排序
- Java中的方法內聯Java
- Java中的泛型方法Java泛型
- 關於Java中的equals方法Java
- java中json的使用方法JavaJSON
- Java中Object類的常用方法JavaObject
- Java中Scanner類的常用方法Java
- Java中String類的常用方法Java
- Java中StringBuffer類的常用方法Java
- Java中Integer類的基本方法Java
- Java中的方法引用詳解Java
- Java 9 中的ofNullable方法 | foojayJavaNull
- java——ArrayList中contains()方法中的疑問JavaAI
- Java中parse方法,ValueOf方法,toString方法Java
- Java 方法中迴圈呼叫具有事務的方法Java
- java Integer中的方法解析(位操作)Java
- Java中try()catch{}的使用方法Java
- Java中 equals() 方法和 == 的區別Java
- Java獲取Object中Value的方法JavaObject
- Java 中的泛型方法及 FunctionJava泛型Function
- JAVA中object類中toString()方法JavaObject
- Java script 中的函式使用方法Java函式
- 最全--Java中建立物件的5種方法Java物件
- java中遍歷map的集中方法Java
- 簡單介紹java中的equals()方法Java
- Java SpringBoot 中,動態執行 bean 物件中的方法JavaSpring BootBean物件
- Java靜態方法和例項方法 java中的陣列作為形參傳入Java陣列
- Java中main方法引數String[ ] args的使用JavaAI
- 【Java】NIO中Selector的select方法原始碼分析Java原始碼
- java方法引數中萬用字元的使用Java字元
- 【Java中遍歷Map物件的4種方法】Java物件
- Java 11:在Java中處理HTTP和WebSocket的新方法!JavaHTTPWeb
- Java的方法靜態方法Java
- 在 Java 中初始化 List 的五種方法Java
- 在Java中反轉字串的10種方法[Snippets]Java字串
- java中String類常用方法的使用與例項Java
- Java中在迭代時新增元素的3種方法Java