程序結構(按執行流程劃分)java
順序結構:總體上程序是順序結構。函數
分支結構:if(若是有else,則必有一個會執行)switch-casespa
循環結構:for while do-while ,重點:嵌套循環虛擬機
方法定義及格式it
簡單的說:方法就是完成特定功能的代碼塊{}編譯
在不少語言裏面都有函數的定義class
函數在Java中被稱爲方法test
返回值類型:用於限定返回值的數據類型,需不須要返回值,須要什麼類型的返回值,徹底取決於業務邏輯,沒有統一規定import
方法名:一個名稱,通常小寫,多個單詞使用駝峯命名,儘可能作到見名知意變量
參數類型 :限定調用方法時傳入參數的數據類型
參數名:是一個變量,接收跳用方法時傳入的參數參數類型和形參名合起來稱爲形參列表
方法體:完成功能的代碼,每次方法被調用,就執行一次這裏面的代碼
return:結束方法以及返回方法指定類型的值,若是方法定義時指定返回值爲void,則return後不能接任何東西,此時的return能夠省略
返回值:程序被return帶回的結果,返回給調用者
自定義方法的位置
類體內不能再方法中再定義方法,或者說方法不能嵌套定義
方法定義和使用的注意事項
1:自定義的方法不調用的話,不會自動執行
2:方法與方法是平級關係,不能嵌套定義
3:方法定義的時候參數之間用逗號隔開
4:方法調用的時候不用再傳遞數據類型,只傳值,或者是變量名便可
5:若是方法有明確的返回值,必定要有return帶回一個同類型值(或者能夠自動向上轉型的返回值)
void類型的方法不能放在打印語句中
void類型的方法不能用於賦值語句中
void類型的方法只能單獨調用
方法重載
在同一個類中,容許存在一個以上的同名方法,只要他們的參數列表(參數個數或者參數類型)不一樣便可,這就叫方法的重載。
若是一個類中存在兩個或者兩個以上同名的方法,可是形參列表不一樣,他們就是方法的重載
特色:與返回值類型無關,只看方法名和參數列表(形參個數,類型)
在調用時,虛擬機經過參數列表的不一樣來區分同名方法
例子
public static void test(){
System.out.println("這是不帶參數的test方法「);
}
public static int test(int id){
System.out.println("這是帶一個參數的test方法」);
return id;
}
//如下方法只是和上面方法返回值不一樣,系統沒法識別成方法的重載,編譯錯誤
public static String test(int id){
System.out.printh(「這是帶一個參數的test方法");
return id+"";
}
自定義方法之間的互相調用
以前使用的自定義方法都是被main方法調用,實際上咱們本身自定義的方法之間一樣能夠互相調用
以下兩個方法,其中個一個就調用來了另外一個方法,這兩個方法在定義的順序上沒有前後要求
public static void speak(String content){
sayHi(); //調用另外一個自定義方法
System.out.println("我想說的是: "+content);
}
public static void sayHi(){
System.out.println("Hi");
}
public static void main(String[] args){
speak("天氣不錯");
自定義兩個方法,一個方法是對打印語句的封裝,形參爲想要打印的內容;另外一個方法是對99乘法口訣表的封裝,形參爲要打印的行數。
要求:在打印99乘法口訣方法之中,調用自定義的打印方法打印出傳入的行數參數,而後再打印99乘法口訣,並在main方法中調用乘法口訣這個方法
import java.utli.Scanner;
class HomeWork{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("請輸入你要打印的行數: ");
myPrint(s.nextInt());
}
public static void sop(String content){
System.out.println(content);
}
public static void myPrint(int n){
sop("你要打印的行數是: "+n);
for(int i = 1;i<=n;i++){
for(int j = 1;j<=i;j++){
System.out.print(i+"x"+j+"="+i*j+"\t");
}
System.out.println();
}
}
}