今日內容
集成開發工具IDEA
方法的參數和返回值方法的重載
教學目標
掌握idea開發工具的安裝
能夠使用idea創建Java工程
能夠使用idea創建包和類
瞭解idea的Java工程目錄
瞭解idea字體的設置
掌握idea常用開發快捷鍵
瞭解項目的導入和刪除
掌握方法定義的參數和返回值含義
瞭解方法的調用過程
瞭解方法的三種調用形式
掌握方法定義的注意事項
掌握方法重載的概念
能夠判斷出方法的重置
第一章 開發工具IntelliJ IDEA
1.1開發工具概述
IDEA是一個專門針對Java的集成開發工具(IDE),由Java語言編寫。所以,需要有JRE運行環境並配置好環境變量。它可以極大地提升我們的開發效率。可以自動編譯,檢查錯誤。在公司中,使用的就是IDEA進行開發。
1.2IDEA軟件安裝
此軟件集成了32位和64位,雙擊 ideaIU-2017.3.2.exe 進入安裝。
1.歡迎界面
2.選擇安裝路徑
3.配置安裝選項
4.開始菜單
5.安裝完畢
IDEA開發工具安裝完成
1.3IDEA首次驅動
1.選擇不導入任何設置,點擊OK
2.選擇Create New Project
3.點擊 new 按鈕,配置安裝的 JDK9 版本
選擇JDK9目錄,點擊確定
4.不使用模板
5. 為工程起名字 demo ,並存儲到 d:\ideawork\demo 目錄下,如果d盤沒有這個目錄,會自動創建。 首次新建項目時,默認的Project Location路徑有問題,如 c:\\xxx ,正確寫法為 c:\\xxx 。更改後不會再 出現此類問題。
6.打開一個每日一帖對話框,勾掉每次啟動顯示,點擊close
7.IDEA的工作界面,我們的項目已經創建好了,如果再新建項目,點擊File->new->Project
1.4創建包和類
展開創建的工程,在源代碼目錄 src 上,鼠標右鍵,選擇 new->package ,鍵入包名 com.itheima.demo , 點擊確定。
右鍵點擊 com.itheima.demo ,選擇 Show in Explorer ,會發現創建包的目錄結構。
可見 com.itheima.demo ,表示創建了多級的文件夾。
小貼士:所謂包,就是文件夾,用來對類文件進行管理。
2. 在創建好的包上,鼠標右鍵,選擇 new->class 創建類,鍵入類名。
3.在代碼編輯區,鍵入主方法,並輸出HelloWorld。
運行程序,在代碼編輯區鼠標右鍵,選擇 Run HelloWorld即可,或在菜單中選擇Run->Run HelloWorld
1.5字體設置
IDEA工具的默認字體非常小,代碼編輯器和控制檯的輸出字體都需要進行調整。
點擊菜單欄上的 File->Settings->Editor->Font 修改字體。
1.6IDEA的項目目錄
我們創建的項目,在d:\ideawork目錄的demo下
.idea 目錄和 demo.iml 和我們開發無關,是IDEA工具自己使用的
out 目錄是存儲編譯後的.class文件
src 目錄是存儲我們編寫的.java源文件
1.7IDEA常用快捷鍵
1.8IDEA修改快捷鍵
在IDEA工具中,Ctrl+空格的快捷鍵,可以幫助我們補全代碼,但是這個快捷鍵和Windows中的輸入法切換快捷
鍵衝突,需要修改IDEA中的快捷鍵。
File->Settings->keymap->Main menu->code->Completion->Basic
雙擊Basic->remove->Ctrl+空格
再次雙擊Basic->Add Keyboard->鍵入 Alt+/->點擊OK
1.9 IDEA導入和關閉項目
關閉IDEA中已經存在的項目, File->Close Project
File->Close Project 這時IDEA回到了剛啟動界面,點擊項目上的 X ,IDEA中就沒有這個項目了
在IDEA的啟動界面上,點擊 OPEN ,選擇項目目錄即可
小貼士:
課後若想通過IDEA同時開啟多個項目,點擊OPEN打開項目時,點擊New Window按鈕
第二章 方法
2.1回顧–方法的定義和調用
前面的課程中,使用過嵌套循環輸出矩形,控制檯打印出矩形就可以了,因此將方法定義為 void ,沒有返回值。 在主方法 main 中直接被調用。
public class Method_Demo1 {
public static void main(String[] args) { print();
}
private static void print() { for (int i = 0; i < 5; i++) {
for (int j = 0; j < 8; j++) { System.out.print("*");
}
System.out.println();
}
}
}
print 方法被 main 方法調用後直接輸出結果,而 main 方法並不需要 print 方法的執行結果,所以被定義為 void 。
2.2 定義方法的格式詳解
修飾符 返回值類型 方法名(參數列表){
//代碼省略... return 結果;
}
修飾符: public static 固定寫法
返回值類型: 表示方法運行的結果的數據類型,方法執行後將結果返回到調用者
參數列表:方法在運算過程中的未知數據,調用者調用方法時傳遞
return:將方法執行後的結果帶給調用者,方法執行到 return,整體方法運行結束
小貼士:return 結果; 這裡的"結果"在開發中,我們正確的叫法成為方法的返回值
2.3定義方法的兩個明確
需求:定義方法實現兩個整數的求和計算。
明確返回值類型:方法計算的是整數的求和,結果也必然是個整數,返回值類型定義為int類型。
明確參數列表:計算哪兩個整數的和,並不清楚,但可以確定是整數,參數列表可以定義兩個int類型的 變量,由調用者調用方法時傳遞
public class Method_Demo2 {
public static void main(String[] args) {
// 調用方法getSum,傳遞兩個整數,這裡傳遞的實際數據又稱為實際參數
// 並接收方法計算後的結果,返回值
int sum = getSum(5, 6); System.out.println(sum);
}
/*
定義計算兩個整數和的方法返回值類型,計算結果是int
參數:不確定數據求和,定義int參數.參數又稱為形式參數
*/
public static int getSum(int a, int b) { return a + b;
}
}
程序執行,主方法 main 調用 getSum 方法,傳遞了實際數據 5和6 ,兩個變量 a和b 接收到的就是實際參數,並 將計算後的結果返回,主方法 main 中的變量 sum 接收的就是方法的返回值。
2.4調用方法的流程圖解
2.5定義方法練習
練習一
比較兩個整數是否相同
分析:定義方法實現功能,需要有兩個明確,即 返回值 和 參數列表 。
明確返回值:比較整數,比較的結果只有兩種可能,相同或不同,因此結果是布爾類型,比較的結果相 同為true。
明確參數列表:比較的兩個整數不確定,所以默認定義兩個int類型的參數。
public class Method_Demo3 {
public static void main(String[] args) {
//調用方法compare,傳遞兩個整數
//並接收方法計算後的結果,布爾值
boolean bool = compare(3, 8); System.out.println(bool);
}
/*
定義比較兩個整數是否相同的方法返回值類型,比較的結果布爾類型參數:不確定參與比較的兩個整數
*/
public static boolean compare(int a, int b) { if (a == b) {
return true;
} else {
return false;
}
}
}
練習二
計算1+2+3…+100的和
分析:定義方法實現功能,需要有兩個明確,即 返回值 和 參數 。
明確返回值:1~100的求和,計算後必然還是整數,返回值類型是int 明確參數:需求中已知到計算的數據,沒有未知的數據,不定義參數
public class Method_Demo4 {
public static void main(String[] args) {
//調用方法getSum
//並接收方法計算後的結果,整數
int sum = getSum(); System.out.println(sum);
}
/*
定義計算1~100的求和方法
返回值類型,計算結果整數int 參數:沒有不確定數據
*/
public static int getSum() {
//定義變量保存求和
int sum = 0;
//從1開始循環,到100結束
for (int i = 1; i <= 100; i++) { sum = sum + i;
}
return sum;
}
}
練習三
實現不定次數打印
分析:定義方法實現功能,需要有兩個明確,即 返回值 和 參數 。
明確返回值:方法中打印出 HelloWorld 即可,沒有計算結果,返回值類型 void 。
明確參數:打印幾次不清楚,參數定義一個整型參數
public class Method_Demo5 {
public static void main(String[] args) {
//調用方法printHelloWorld,傳遞整數printHelloWorld(9);
}
/*
定義打印HelloWorld方法
返回值類型,計算沒有結果 void
參數:不確定打印幾次
*/
public static void printHelloWorld(int n) { for (int i = 0; i < n; i++) {
System.out.println("HelloWorld");
}
}
}
2.6 定義方法的注意事項
定義位置,類中方法外面。
返回值類型,必須要和 return 語句返回的類型相同,否則編譯失敗 。
// 返回值類型要求是int
public static int getSum() {
return 5;// 正確,int類型
return 1.2;// 錯誤,類型不匹配
return true;// 錯誤,類型不匹配
}
不能在 return 後面寫代碼, return 意味著方法結束,所有後面的代碼永遠不會執行,屬於無效代碼。
public static int getSum(int a,int b) { return a + b;
System.out.println("Hello");// 錯誤,return已經結束,這裡不會執行,無效代碼
}
2.7調用方法的三種形式
直接調用:直接寫方法名調用
public static void main(String[] args) { print();
}
public static void print() { System.out.println("方法被調用");
}
賦值調用:調用方法,在方法前面定義變量,接收方法返回值
public static void main(String[] args) { int sum = getSum(5,6); System.out.println(sum);
}
public static int getSum(int a,int b) { return a + b;
}
輸出語句調用:
在輸出語句中調用方法, System.out.println(方法名()) 。
public static void main(String[] args) { System.out.println(getSum(5,6));
}
public static int getSum(int a,int b) { return a + b;
}
不能用輸出語句調用 void 類型的方法。因為方法執行後沒有結果,也就打印不出任何內容。
public static void main(String[] args) { System.out.println(printHello());// 錯誤,不能輸出語句調用void類型方法
}
public static void printHello() { System.out.println("Hello");
}
2.8方法重載
方法重載:指在同一個類中,允許存在一個以上的同名方法,只要它們的參數列表不同即可,與修飾符和返 回值類型無關。
參數列表:個數不同,數據類型不同,順序不同。
重載方法調用:JVM通過方法的參數列表,調用不同的方法。
2.9方法重載練習
練習一
比較兩個數據是否相等。參數類型分別為兩個 byte 類型,兩個 short 類型,兩個 int 類型,兩個 long 類型,並 在 main 方法中進行測試。
public class Method_Demo6 {
public static void main(String[] args) {
//定義不同數據類型的變量byte a = 10;
byte b = 20; short c = 10; short d = 20; int e = 10; int f = 10; long g = 10; long h = 20;
// 調 用
System.out.println(compare(a, b)); System.out.println(compare(c, d)); System.out.println(compare(e, f)); System.out.println(compare(g, h));
}
// 兩個byte類型的
public static boolean compare(byte a, byte b) { System.out.println("byte");
return a == b;
}
// 兩個short類型的
public static boolean compare(short a, short b) { System.out.println("short");
return a == b;
}
// 兩個int類型的
public static boolean compare(int a, int b) { System.out.println("int");
return a == b;
}
// 兩個long類型的
public static boolean compare(long a, long b) { System.out.println("long");
return a == b;
}
}
練習二
判斷哪些方法是重載關係。
public static void open(){}
public static void open(int a){}
static void open(int a,int b){}
public static void open(double a,int b){}
public static void open(int a,double b){}
public void open(int i,double d){}
public static void OPEN(){}
public static void open(int i,int j){}
練習三
模擬輸出語句中的 println 方法效果,傳遞什麼類型的數據就輸出什麼類型的數據,只允許定義一個方法名 println 。
public class Method_Demo7 {
public static void println(byte a) { System.out.println(a);
}
public static void println(short a) { System.out.println(a);
}
public static void println(int a) { System.out.println(a);
}
public static void println(long a) { System.out.println(a);
}
public static void println(float a) { System.out.println(a);
}
public static void println(double a) { System.out.println(a);
}
public static void println(char a) { System.out.println(a);
}
public static void println(boolean a) { System.out.println(a);
}
public static void println(String a) { System.out.println(a);
}
}