1. 程式人生 > 實用技巧 >零基礎學Java第四章

零基礎學Java第四章

一、Java開發工具

工欲善其事,必先利其器,之前都是記事本的編寫,是為了基礎的東西先通過手動了解。而真正的開發環境下,是需要有開發軟體來配合的,強大的開發軟體能夠極大的提高我們的效率。現在就Java而言,現在主流的工具有IntelliJ IDEA和Eclipse,但是由於IDEA是收費的,一般大公司不差錢的可以集體購買IDEA進行高效率開發,當然也可以自行購買或破解(不推薦,因為會檢查定期給你封了)。所以我們下面都選擇用Eclipse作為主要工具,因為它對新手來說友好且免費!!

1. Eclipse開發工具

1.1. Eclipse下載安裝

Eclipse是一個IDE(整合開發環境)IDE(Integrated Development Environment)。集成了程式碼編寫功能,分析功能,編譯功能,除錯功能等一體化的開發軟體。Eclipse的特點描述:免費、純Java語言編寫、免安裝、擴充套件性強。

下載和安裝、下載:點此去下載(官網)

或者網速慢的可以點此下載(百度網盤下載)提取碼:uihh
下載後直接下一步就可以了

1.2. Eclipse的使用

1)選擇工作空間:工作空間 其實就是我們寫的原始碼所在的目錄

2)用Eclipse來完成一個HelloWorld案例

A:建立Java專案:點選File或者在最左側空白處,選擇Java專案,在介面中寫一個專案名稱,然後Finish即可。

B:建立包:展開專案,在源包src下建立一個包com.test

C:建立類:點選com.test包下右擊找到new--class建立一個類HelloWorld
在介面中寫一個類名:HelloWorld,然後finish即可。

D:編寫程式碼:在HelloWorld類寫main方法,在main方法中寫一條輸出語句:這是Eclipse裡的第一個程式碼。

E:編譯:自動編譯,在儲存的那一刻幫你做好了

F:執行:選擇要執行的檔案或者在要執行的檔案內容中
右鍵 -- Run as - Java Application即可

到此我們在工具類裡的第一個程式碼就完成了,從書寫到輸出。

1.3. Eclipse工作空間的基本配置

我們說到工具強大,把工具設定好也是能提高效率的

1.3.1.行號的顯示和隱藏

顯示:在程式碼區域的最左邊的空白區域,下圖紅圈位置右鍵 -- Show Line Numbers即可。
隱藏:把上面的動作再做一次。

1.3.2.字型大小及顏色

Java程式碼區域的字型大小和顏色:
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java -- Java Edit Text Font

控制檯顏色
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font

其他檔案
window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font

** 窗體給弄亂了,怎麼辦?**
window -- Perspective -- Reset Perspective

控制檯找不到了,怎麼辦?
Window--Show View—Console

或者點此瞭解(Eclipse顏色修改等)

1.4. Eclipse中輔助鍵和快捷鍵的使用

內容輔助鍵 alt+/
例如:main 然後alt+/ 就會補全

syso 然後alt+/

其他快捷鍵
註釋:
單行 選中內容,ctrl+/, 再來一次取消
多行 選中內容,ctrl+shift+/, ctrl+shift+
格式化 ctrl+shift+f

更加詳細可以點此瞭解(Eclipse快捷鍵大全)

1.5. Eclipse中專案的刪除和匯入

刪除專案
選中專案 – 右鍵 – 刪除 有兩個選擇:

從專案區域中刪除(檔案還在後續還可以再匯入)

從硬碟上刪除(專案徹底刪除)

匯入專案
1)在專案區域右鍵找到import

2)找到General,展開,並找到

3)Existing Projects into Workspace

4)點選next,然後選擇你要匯入的專案

5)注意:這裡選擇的是專案名稱

二、Java運算子

運算子:對常量和變數進行操作的符號稱為運算子。

表示式:用運算子把常量或者變數連線起來符號java語法的式子就可以稱為表示式。不同運算子連線的式子體現的是不同型別的表示式。

例如:定義兩個int型別的變數a,b,做加法就是(a + b)

常用運算子:

 算術運算子
 賦值運算子
 關係運算符
 邏輯運算子
 三元運算子

1. 算術運算子

1.1 算術運算子概述

對常量和變數進行操作的符號就是算術運算子。一般分為 +,-,*,/,%,++,--

package com.test.day02;
/*
* 運算子:對常量和變數進行操作的符號
* 表示式:用運算子連線起來的符合java語法的式子。不同型別的運算子連線起來的式子是不同的表示式。
* 		舉例:定義兩個int型別的變數a,b,
* 			a + b
* 
* 運算子分類:
* 		算術運算子,賦值運算子,關係運算符,邏輯運算子,三元運算子。
* 
* 算術運算子:
* 		+,-,*,/的基本使用
*/

public class OperatorDemo {
 public static void main(String[] args) {
 	// 定義兩個變數
 	int a = 3;
 	int b = 4;

 	System.out.println(a + b);
 	System.out.println(a - b);
 	System.out.println(a * b);
 	System.out.println(a / b);

 	// 整數相除只能得到整數,要想得到小數,就必須有浮點數參與運算
 	System.out.println(3 / 4.0);
 	System.out.println(3.0 / 4);

 }
}

1.2.算數運算子取餘和除法的區別

%:取餘運算子。得到的是兩個相除資料的餘數。

/:除法運算子。得到是兩個相除資料的商。

使用場景: %:判斷兩個資料是否整除。

public class OperatorDemo2 {
 public static void main(String[] args) {
 	int a = 5;
 	int b = 3;

 	System.out.println(a / b);
 	System.out.println(a % b);
 }
}

1.3.算數運算子取餘和除法的區別

字元參與運算
其實是拿該字元對應的數值來操作,這裡可以參考ASCII碼
‘a’ 97
‘A’ 65
‘0’ 48
字串參與運算
這裡其實做的不是加法運算,而是字串拼接。
字串和其他型別的資料做拼接,結果是字串型別的。

package com.test.day02;
/*
* 整數的加法。
* 字元參與加法操作。拿字元在計算機中底層儲存對應的資料值來參與運算的。
* 		'0'		48
* 		'a'		97
* 		'A'		65
* 字串參與加法操作。
* 		這裡的+其實不是加法,而是字串連線符。
*/

public class OperatorDemo3 {
 public static void main(String[] args) {
 	// 整數加法
 	int a = 10;
 	int b = 20;
 	System.out.println(a + b);
 	System.out.println("------------------");

 	// 字元參與加法操作
 	char c = '0';
 	char c2 = 'a';
 	System.out.println(a + c);
 	System.out.println(a + c2);
 	System.out.println("------------------");

 	// 字串參與加法操作
 	System.out.println("hello" + a);
 	System.out.println("hello" + a + b); // "hello"+10,然後再和b進行拼接
 	System.out.println(a + b + "hello");

 }
}

結果:

2. 賦值運算子

2.1 賦值運算子概述

基本的賦值運算子:=

擴充套件的賦值運算子:+=,-=,*=,/=,%=

+=: a+=20;相當於a = (a的資料型別)(a + 20);

package com.test.day02;
/*
* 賦值運算子:
* 		A:基本	=
* 		B:擴充套件	+=,-=,*=,...
* 
* +=:
* 		a+=20;
* 		相當於
* 		a = (a的資料型別)(a + 20);
*/

public class OperatorDemo3 {
 public static void main(String[] args) {
 	// 把10賦值給int型別的變數a
 	int a = 10;

 	// += 把左邊和右邊的資料進行運算,最後賦值給左邊。左邊的只能是變數
 	a += 10;// 相當於a = a + 10
 	System.out.println("a:" + a);
 	System.out.println("----------------------");

 	short s = 10;
 	// s += 20; // 相當於 s = s + 20;
 	s = (short) (s + 20);
 	System.out.println("s:" + s);

 }
}

3. 關係運算符

3.1 關係運算符概述

關係運算符包含以下內容:

==,!=,>,>=,<,<=

關係運算符的結果都是boolean型,也就是要麼是true,要麼是false。

注意事項:

關係運算符“==”不能誤寫成“=”

package com.test.day02;
/*
* 關係運算符:
* 		==,!=,>,>=,<,<=
* 		關係運算符的結果是boolean型別。
* 
* 注意:
* 		千萬不要把==寫成=
*/

public class OperatorDemo3 {
 public static void main(String[] args) {
 	int a = 10;
 	int b = 20;
 	int c = 10;

 	System.out.println(a == b);
 	System.out.println(a == c);
 	System.out.println("-----------------");
 	System.out.println(a != b);
 	System.out.println(a != c);
 	System.out.println("-----------------");
 	System.out.println(a > b);
 	System.out.println(a > c);
 	System.out.println("-----------------");
 	System.out.println(a >= b);
 	System.out.println(a >= c);
 	System.out.println("-----------------");

 	int x = 3;
 	int y = 4;
 	// System.out.println(x == y);
 	// System.out.println(x = y);// 把y賦值給x,把x的值輸出
 	boolean bb = (x == y);
 	// 報錯
 	// boolean cc = (x = y);
 	int cc = (x = y);
 }

}

4. 邏輯運算子

4.1 邏輯運算子概述

1)邏輯運算子有哪些
&,|,^,!,&&,||

2)邏輯運算子的基本用法

程式中做重要的判斷,例如我們一批數字,4,8,6,1,3 我們需要在數字 3 且 1 的時候處理某種業務,就可以說是 3 && 1。具體可以看下面的程式碼示例

3)注意事項:
a:邏輯運算子一般用於連線boolean型別的表示式或者值。

b:表示式:就是用運算子把常量或者變數連線起來的符合java語法的式子。

 	算術表示式:a + b
	比較表示式:a == b(條件表示式)

4)結論:
&邏輯與:有false則false。

|邏輯或:有true則true。

^邏輯異或:相同為false,不同為true。

!邏輯非:非false則true,非true則false。

特點:偶數個不改變本身。
package com.test.day02;
/*
* 邏輯運算子:用於連線關係表示式。
* &,|,^,!
* &&,||
* 
* 與:&	有false則false
* 或:|	有true則true
* 異或:^ 相同則false,不同則true。(男女朋友)
* 非:!	true則false,false則true
*/

public class OperatorDemo3 {
 public static void main(String[] args) {
 	int a = 10;
 	int b = 20;
 	int c = 30;

 	System.out.println((a > b) & (a > c));// false & false
 	System.out.println((a < b) & (a > c)); // true & false
 	System.out.println((a > b) & (a < c)); // false & true
 	System.out.println((a < b) & (a < c)); // true & true
 	System.out.println("---------------");
 	System.out.println((a > b) | (a > c));// false | false
 	System.out.println((a < b) | (a > c)); // true | false
 	System.out.println((a > b) | (a < c)); // false | true
 	System.out.println((a < b) | (a < c)); // true | true
 	System.out.println("---------------");
 	System.out.println((a > b) ^ (a > c));// false ^ false
 	System.out.println((a < b) ^ (a > c)); // true ^ false
 	System.out.println((a > b) ^ (a < c)); // false ^ true
 	System.out.println((a < b) ^ (a < c)); // true ^ true
 	System.out.println("---------------");
 	System.out.println((a > b)); // false
 	System.out.println(!(a > b)); // !false
 	System.out.println(!!(a > b)); // !!false
 }
}

4.2 邏輯運算子概述邏輯運算子&&與&的區別,面試常問可以點此瞭解

1)&&和&的區別?

a:最終結果一樣。

b:&&具有短路效果。左邊是false,右邊不執行。

&是無論左邊是false還是true,右邊都會執行

2)||和|的區別?

a:最終結果一樣

b:||具有短路效果.左邊是true,右邊不執行

|是無論左邊是false還是true,右邊都會執行
package com.test.day02;
/*
* &&和&的結果一樣
* ||和|的結果一樣
* 
* &&和&的區別:
* 		&&如果左邊是false,右邊不執行。
* 		&無論左邊是true還是false,右邊都會執行。
*/

public class OperatorDemo3 {
 public static void main(String[] args) {
 	int a = 10;
 	int b = 20;
 	int c = 30;

 	System.out.println((a > b) && (a > c));// false && false
 	System.out.println((a < b) && (a > c)); // true && false
 	System.out.println((a > b) && (a < c)); // false && true
 	System.out.println((a < b) && (a < c)); // true && true
 	System.out.println("---------------");
 	System.out.println((a > b) || (a > c));// false || false
 	System.out.println((a < b) || (a > c)); // true || false
 	System.out.println((a > b) || (a < c)); // false || true
 	System.out.println((a < b) || (a < c)); // true || true
 	System.out.println("---------------");

 	int x = 3;
 	int y = 4;
 	// System.out.println((x++ > 4) & (y++ > 5)); // false & false
 	System.out.println((x++ > 4) && (y++ > 5)); // false && false
 	System.out.println("x:" + x);
 	System.out.println("y:" + y);

 }
}

5. 邏輯運算子

5.1 邏輯運算子概述

1)格式:
(關係表示式)?表示式1:表示式2;

如果條件為true,運算後的結果是表示式1;

如果條件為false,運算後的結果是表示式2;

2)示例:
獲取兩個數中大數。

int x=3,y=4,z;

z = (x>y)?x:y;//z變數儲存的就是兩個數的大數
package com.test.day02;

/*
* 三元運算子:
* 
* 格式:
* 		(關係表示式)?表示式1:表示式2;
* 執行流程:
* 		A:計算關係表示式的值,看是true還是false
* 		B:如果是true,表示式1就是運算結果
* 		      如果是false,表示式2就是運算結果
*/
public class OperatorDemo3 {
 public static void main(String[] args) {
 	int a = 10;
 	int b = 20;

 	int c = (a > b) ? a : b;
 	System.out.println("c:" + c);

 }
}

比較兩個數是否相等

package com.test.day02;

/*	
* 三元運算子的練習
* 比較兩個整數是否相同
*/
public class OperatorDemo3 {
 public static void main(String[] args) {
 	// 定義兩個int型別的變數
 	int a = 10;
 	int b = 20;

 	boolean flag = (a == b) ? true : false;
 	// boolean flag = (a == b);
 	System.out.println(flag);

 }
}

獲取三個數中的最大值

package com.test.day02;

/*
* 獲取三個整數中的最大值
*/
public class OperatorDemo3 {
 public static void main(String[] args) {
 	// 定義三個int型別的變數
 	int a = 10;
 	int b = 30;
 	int c = 20;

 	// 先比較兩個整數的大值
 	int temp = ((a > b) ? a : b);
 	int max = ((temp > c) ? temp : c);
 	System.out.println("max:" + max);

 }
}

三、鍵盤錄入

1. 鍵盤錄入基本步驟

1.1. 鍵盤錄入資料概述

我們目前在寫程式的時候,資料值都是固定的,但是實際開發中,資料值肯定是變化的,所以,把資料改進為鍵盤錄入,提高程式的靈活性。

鍵盤錄入資料的步驟:
1):導包(位置放到class定義的上面)
import java.util.Scanner;

2):建立物件
Scanner sc = new Scanner(System.in);

3):接收資料
int x = sc.nextInt();

package com.test.day02;

import java.util.Scanner;

/*
* 為了提高程式的靈活性,我們就把資料改進為鍵盤錄入。
* 如何實現鍵盤錄入呢?目前我們只能使用JDK提供的類Scanner。
* 這個使用的步驟,目前大家記住就可以了。
* 
* 使用步驟:
* 		A:導包
* 			import java.util.Scanner;
* 			類中的順序:package > import > class
* 		B:建立物件
* 			Scanner sc = new Scanner(System.in);
* 		C:接收資料
* 			int i = sc.nextInt();
*/
public class ScannerDemo {
 public static void main(String[] args) {
 	// 建立鍵盤錄入資料的物件
 	Scanner sc = new Scanner(System.in);

 	// 接收資料
 	System.out.println("請錄入一個整數:");
 	int i = sc.nextInt();

 	// 輸出資料
 	System.out.println("i:" + i);

 }
}

1.2. 練習

1.2.1 鍵盤錄入兩個資料並求和
package com.test.day02;

import java.util.Scanner;

/*
錄入兩個數字並求和
*/
public class ScannerDemo {
 public static void main(String[] args) {
 	// 建立物件
 	Scanner sc = new Scanner(System.in);

 	// 接收資料
 	System.out.println("請輸入第一個資料:");
 	int a = sc.nextInt();

 	System.out.println("請輸入第二個資料:");
 	int b = sc.nextInt();

 	// 對資料進行求和
 	int sum = a + b;
 	System.out.println("sum:" + sum);

 }

}
1.2.2 鍵盤錄入兩個資料,比較這兩個資料是否相等
package com.test.day02;

import java.util.Scanner;

/*
*鍵盤錄入兩個資料,比較這兩個資料是否相等
*/
public class ScannerDemo {
 public static void main(String[] args) {
 	// 建立物件
 	Scanner sc = new Scanner(System.in);

 	// 接收資料
 	System.out.println("請輸入第一個資料:");
 	int a = sc.nextInt();

 	System.out.println("請輸入第二個資料:");
 	int b = sc.nextInt();

 	// 比較兩個資料是否相等
 	// boolean flag = ((a == b) ? true : false);
 	boolean flag = (a == b);
 	System.out.println("flag:" + flag);

 }
}
1.2.3 鍵盤錄入三個資料,獲取這三個資料中的最大值
package com.test.day02;

import java.util.Scanner;

/*
*鍵盤錄入三個資料,獲取這三個資料中的最大值
*/
public class ScannerDemo {
 public static void main(String[] args) {
 	// 建立物件
 	Scanner sc = new Scanner(System.in);

 	// 接收資料
 	System.out.println("請輸入第一個資料:");
 	int a = sc.nextInt();

 	System.out.println("請輸入第二個資料:");
 	int b = sc.nextInt();

 	System.out.println("請輸入第三個資料:");
 	int c = sc.nextInt();

 	// 如何獲取三個資料的最大值
 	int temp = (a > b ? a : b);
 	int max = (temp > c ? temp : c);

 	System.out.println("max:" + max);

 }
}