Java SE基礎部分--02.Java資料型別轉換、運算子、方法入門
學習目標:
1、資料型別轉換、
2、算數運算子、
3、賦值運算子、
4、比較運算子、
5、邏輯運算子、
6、三元運算子、
7、方法定義和呼叫
一、資料型別轉換:
1、資料型別轉換分為:隱式型別轉換、強制型別轉換。
隱式轉換:是將容量小的型別自動轉成容量大的資料型別、
順序為:byte 、short、char、int、long、float、double
例: // 定義一個byte型別的資料
byte b = 123;
// 定義一個int型別的空間,然後將byte空間中的值賦值給int空間中
int i = b;
System.out.println(i);
強制轉換:可以將大的資料型別儲存到小的資料型別空間裡
轉換格式:需轉換的資料型別 變數名 = (需要轉成的資料型別)(被轉的資料);
例:Int a = 20;
Byte b = (byte)(a);
轉換原理:如下圖
2、ASCII 編碼表:ASCII碼錶:它是採用一個位元組表示一個字元資料(標點符號,英文字母,其他的特殊符號,數字等)
張表中規定了生活中所有的字元和二進位制之間的對應關係
事例:
public static void main(String[] args) {
//字元型別變數賦值整型資料
char c = 97;
System.out.println(c); //顯示a
//整型型別遍歷賦值字元資料
int i = 'a';
System.out.println(i); //顯示97
}
二、算數運算子:
例:
public static void main(String[] args) {
// 定義兩個變數
int a = 9;
int b = 4;
// 列印各類運算的運算結果
System.out.println(a + b); //
System.out.println(a - b); //顯示:5
System.out.println(a * b); //顯示:36
System.out.println(a / b); //顯示:2
System.out.println(a % b); //顯示:1
/*
演示java中的算數運算的規律:
1、運算子號兩側的資料型別一致時,最終的運算結果依然是當前的資料型別。
2、運算子號兩側的資料型別不一致時,最終的運算結果為較大的資料型別。
*/
System.out.println( 4321 / 1000 * 1000 );// 4000
System.out.println( 4321 / 1000.0 * 1000 );// 4321.0
}
前置++、++a 先運算再賦值。
後置++、a++先賦值在運算
變數a++ :變數a 先把值1 賦值給變數b,然後變數a 再加1。先使用,後計算
變數++c :變數c 先自己加1,然後將結果賦值給變數空間d。先計算,後使用
例:
public static void main(String[] args){
// 定義變數,演示後置自增獨立運算結果
int a = 10;
a++;
System.out.println(a); // 11 如果為--運算則結果為 9
// 定義變數,演示後置自增獨立運算結果
int b = 10;
++b;
System.out.println(a); // 11 如果為--運算則結果為 9
}
重要:和其他運算子混合運算:
如果++或者--在變數的後置位置,先拿變數參與操作,然後變數 做++或者--運算;
如果++或者--在變數的前置位置,變數先做++或者--運算,然後拿變數參與操作;
變數a++ :變數a先把值1賦值給變數b,然後變數a再加1。先使用,後計算
變數++c :變數c先自己加1,然後將結果賦值給變數空間d。先計算,後使用
例:
public static void main(String[] args) {
int a = 1;
int b = a++;
System.out.println(a);//計算結果是2
System.out.println(b);//計算結果是1
int c = 1;
int d = ++c;
System.out.println(c);//計算結果是2
System.out.println(d);//計算結果是2
// 先口算i 和 y的結果,然後執行程式看結果是否和自己計算的一致。
int i = 5;
int y = (i++)+(i++)+(++i)+(++i)+(i++);
// 5 6 8 9 9
System.out.println(i);//10
System.out.println(y);//37
}
+ 符號在字串中的操作:
+ 符號在遇到字串的時候,表示連線、拼接的含義。字串資料可以和任何的資料型別進行拼接的運算。拼接完成後會產生一個新的更長的字串。
"a"+"b"的結果是“ab”,連線含義,表示將兩個字串連線到一起成為一個新的字串。
例:
public static void main(String[] args){
System.out.println("5+5="+5+5);//輸出5+5=55
System.out.println("abc" + 123);// 輸出abc123
}
三、賦值運算子:
“=”賦值運算子,就是將符號右邊的值,賦給左邊的變數。
“==” 這個是判斷二個值是否相等、注意區分。
類似“+=” 運算子自帶轉換
例:
public static void main(String[] args) { // 演示普通賦值運算 int x = 5; // 將=號右側的資料5賦值給=號左側的x變數空間中 System.out.println("x=" + x); // 結果為5 int y = 5 + 5; // 將=號右側表示式的運算結果賦值給=號左側的y變數空間中。 System.out.println("y=" + y); // 演示混合賦值運算 int a = 5; a += 5; // 相等於 a = a + 5; System.out.println("a=" + a);// 拼接列印資料 a的結果為10 /* 因為加或乘兩種運算方式不管是左側和右側還是右側和左側運算,最終都不會改變運算的結果。因此 上述程式碼並不能完成驗證出混合運算的結論是否正確,我們使用減或除法運算再次驗證一次 */ int b = 10; b -= 5; // 相等於 b = b - 5; System.out.println("b=" + b);// 拼接列印結果為5。驗證出混合賦值運算的運算規律。 // 驗證混合運算中的強制型別轉換 byte by = 5; // by = by + 5; // 程式報錯,因為運算結果為int型別,不能賦值給byte型別 by += 5; // by = (byte)(by + 5); 因為混合運算有強制型別轉換,所以OK System.out.println("by = " + by); }
四、比較運算子:
比較運算就是指數學中的資料的大小關係比較。比較的結果只能是true 或 `false`
例:
public static void main(String[] args) {
// 定義變數,驗證比較運算的運算規律
int a = 3;
int b = 5;
System.out.println( a > b );// false
System.out.println( a < b );// true
System.out.println( a = b );// 5 =號表示的賦值,不是比較運算
System.out.println( a >= b );// true
System.out.println( a <= b );// true
System.out.println( a != b );// false
System.out.println( a == b );// true ==號表示比較運算
}
五、邏輯運算子:
邏輯運算子,也叫做布林運算。是用來連線兩個布林型別結果的運算子,邏輯運算的結果並不表示數值大小,運算結果都是布林值true或者false。也就是數學中的 || && ! 運算。
六、三元運算子:
三元遠算符格式:資料型別 變數名 = 布林型別表示式 ? 結果1 : 結果2;
三元運算子計算方式:
布林型別表示式結果為true時,將結果1賦值給變數。
布林型別表示式結果為false時,將結果2賦值給變數。
例:
public static void main(String[] args) { // 定義兩個變數。使用三元運算求出兩個數值中較大的值 int a = 3; int b = 5; int max = a > b ? a : b; // 使用三元運算求出較大的值 System.out.println("max = " + max ); // 輸出列印較大的值5 // 思考,如何使用三元運算求出3個數中較大的值 int c = 7; // 提供第三個變數 //先比較出兩個數中較大的,然後和第三個數進行比較 int max1 = max > c ? max : c; System.out.println("max1 = " + max1 );// 輸出列印較大的值7 // 另外一種方式,不建議使用 int max2 = ( a > b ? a : b ) > c ? ( a > b ? a : b ) : c; System.out.println("max2 = " + max2);// 輸出列印較大的值7 }
七、方法的建立與呼叫:
方法定義:也叫函式、指的是一個獨立封裝起來能夠獨立執行並且某些功能的程式碼。定義在
類內main 外。和main 平級。
方法的好處:提高程式碼複用性、提高開發效率、後期維護升級方便
定義格式:
方法修飾符 方法返回值型別 方法名(引數列表){
方法體程式碼;
return 返回值;
}
方法的呼叫:方法定義完後、在主方法main 呼叫:方法名();
return 返回值是方法的返回值。 return;結束方法、return 後面不能直接書寫其他程式碼。
注:後面會學到方法的過載(同一個類、同名不同參)和方法的重寫(繼承類、同名同參同返回值、重寫方法體)<瞭解>
例:
public static void main(String[] args) {
// 定義兩個變數,用來比較大小關係
int a = 3;
int b = 5;
//呼叫定義的方法 , 並將資料傳遞給方法
getMax( a , b );
}
//定義方法,使用三元運算求出兩個資料中較大的一個
public static int getMax( int a , int b ) {
// 使用三元運算求出兩個資料中較大的一個
int max = a > b ? a : b;
// 將求出的較大的資料返回給呼叫者
return max;
}