[Java] 1.2. 型別

型別,決定資料該有的長像,同時有限定了變數能夠裝下什麼類型的資料。

 

image/svg+xml型別,限制變數可存放的現⾦類型 為什麼模擬錢包的變數前⾯, ⼀定要加上⼀些英⽂字⺟? 數值相關的基本資料型別 型別,決定變數可裝下的現⾦類型 其他基本資料型別 1.2. 型別 class Main { public static void main( String [] args){ int money = 100 ; } } 編譯時發⽣錯誤 Main.java:4: error: cannot find symbol money = 100; ^ symbol: variable money location: class Main 1 error class Main { public static void main( String [] args){ int money = 100.123 ; } } 編譯時發⽣錯誤 Main.java:3: error: incompatible types: possible lossy conversion from double to int int money = 100.123; ^ 1 error Java 語⾔中,已經有⼀些預先定義好的型別,⽽這些型別通常表式的就是⼀個資料的特定格式, 因此⼜可稱為 基本資料型別 。數值相關的資料型別如下列表: class Main { public static void main( String [] args){ byte b = 127 ; short s = -10 ; int i= 2147483647 ; long l= 1L ; float f= 10.123F ; double d= 10.123 ; } } Java 還有兩個特別的型別, boolean char boolean 型別只能保存 true false ,⽤以表⽰對 或錯的兩種可能。⽽ char 是⽤來存放單⼀字元所使⽤的。其他基本資料型別表: class Main { public static void main( String [] args){ char c = ' ' ; boolean b1 = true ; boolean b2 = false ; } } 整數 範圍 byte -128~127 short -32768~32767 int -2147483648~2147483647 long -9223372036854775808~9223372036854775807 實數 範圍 float 七位⼩數點 double ⼗五位⼩數點 實數 範圍 boolean true false char U+0000 U+ffff 。即⼀個字元,如: A B J1_2_1 - Main.java 1. 將模擬錢包變數 -money 前⽅的 int 刪除,若是你這麼寫!抱歉,你會得到⼀個 錯誤。這樣的寫法在 Java 中是不被充許的,⽽且當我們嘗試將 100 放入 money 變數 中時,編譯器會告訴您這個 money 變數不存在,所以不能將 100 元放進 money 變數 中。那 money 前⽅的英⽂字⺟ int 到底⼜是作什麼⽤的呢?拿掉⼜不⾏? J1_2_2 - Main.java 1. int 即是 Integer 的縮寫,即表⽰整數的意思。將 int 加在 money 數前⾯,表⽰將對 money 變數進⾏資料型別的限制,只有整數相關的數 值才可存入 money 變數中,就像台灣的⾦錢單位是整數是⼀樣的意思。 2. 這時若將硬將非整數的 100.123 數值放入 money 變數中,抱 歉! int 代表的是整數, money 變數將無法接受這個有⼩數的數 值,所以你⼜得到⼀個錯誤。這個錯誤指出有⼩數點的數,不可以 直接放入整數的變數中,因為整數的變數不能保存⼩數。 J1_2_3 - Main.java 1. 這三個資料型別,能裝進去的現⾦資料都是整數類的(當然 包含負整數),差別在於它們能裝進去的整數⼤⼩不同⽽已。 2. long- 長整數是可以裝下最多整數的⼀個型別,但記得要在你的 整數後⽅加上⼀個 “L” 或是 “l” 。這表⽰您可以存放更多的現⾦。 1 3. float- 浮點數是可以裝下實數(有⼩數點的數)的,但記得這個 數的後⾯要加上個 “F“ 或是 “f” 。現在,您的現⾦可以存放⼩數值了。 這樣的寫法在 Java 中是不被充許的,所以編譯器會告訴你這是⼀個不對的語 句。 我們嘗試著把⼀個有⼩數點的數(以數學上的說法,這叫作實數,但 money 被限定只能裝整數,所以你得到⼀個可能會失去精準度( possible loss of precision )的錯誤。 1 1 1 4. double 也可以裝下實數,但與 float 差別在於它能裝下的⼩數位數是更多的。 J1_2_4 - Main.java 1. char 型別⼀次只能裝下⼀個字元,你可以直接給它⼀個 字元,這個字元是使⽤單引號( ' )來將字元裝起來的。 2. 這是⼀個很特別的資料型別,你只能給 “true” 或是 “false” 的值。

留言