課後作業-2
阿新 • • 發佈:2018-10-06
ear 原始類型 input plain println 常量 有著 .get exti
package 課後練習; public class 課後練習01 { //EnumTet public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; System.out.println(s==t); System.out.println(s.getClass().isPrimitive());//Object類中包含一個方法名叫getClass,利用這個方法就可以獲得一個實例的類型類;isPrimitive()此方法主要用來判斷Class是否為原始類型 Size u=Size.valueOf("SMALL");//valueOf()方法: 這個方法和toString方法是相對應的,返回帶指定名稱的指定枚舉類型的枚舉常量,返回Size.SMALL System.out.println(s==u); for(Size value:Size.values()) { System.out.println(value); } } } enum Size{SMALL,MEDIUM,LARGE};//enum很像特殊的class,實際上enum聲明定義的類型就是一個類。
運行結果為:false、false、true、SMALL、MEDIUM、LARGE
運行結果的分析:首先比較s和t的地址值是否一樣,不一樣運行結果為false;然後得到Size的類類型,然後判斷其是否為原始類,因為它不是,所以運行結果為false;然後運用valusOf方法把SMALL賦給u,然後比較s和u的地址值是否一樣,因為運用了此方法,所以他們兩個的地址值一樣,所以運行結果為true;
最後輸出了Size中的SMALL、MEDIUM、LARGE。
枚舉類型的基本用法:
有了枚舉,可以把相關的常量分組到一個枚舉類型裏,每當需要一組固定的常量的時候,就可以使用枚舉類型。
package 課後練習; import javax.swing.JOptionPane; public class 課後練習02 {//addition public static void main( String args[] ) { String firstNumber; String secondNumber;int number1; int number2; int sum; firstNumber = JOptionPane.showInputDialog( "Enter first integer" );//JOptionPane.showInputDialog方法返回用戶輸入的字符串。 secondNumber = JOptionPane.showInputDialog( "Enter second integer" ); number1 = Integer.parseInt( firstNumber ); //Integer.parseint()就是把整形對象Integer轉換成基本數據類型int(整數)。 number2 = Integer.parseInt( secondNumber ); sum = number1 + number2; JOptionPane.showMessageDialog( null, "The sum is " + sum, "Results", JOptionPane.PLAIN_MESSAGE ); System.exit( 0 ); } }
使用兩個輸入框輸入數據,使用一個輸出框顯示結果。
分析:JOptionPane.showInputDialog方法返回用戶輸入的字符串,生成輸入框,並在輸入框上顯示輸入的信息;在第一個輸入框中輸入number1,在第二個輸入框中輸入number2
System.exit(0)是正常退出程序
package 課後練習; import java.util.*; public class 課後練習03 { public static void main(String[]args) { Scanner in = new Scanner(System.in); System.out.print("What is your name? "); String name = in.nextLine(); System.out.print("How old are you? "); int age = in.nextInt(); System.out.println("Hello, " + name + ". Next year, you‘ll be " + (age + 1)); } }
先後輸入名字和年齡,然後輸出。
package 課後練習; public class 課後練習04 { public static void main(String[]args) { System.out.println("0.05+0.01="+(0.05+0.01)); System.out.println("1.0-0.42="+(1.0-0.42)); System.out.println("4.015*100="+(4.015*100)); System.out.println("123.3/100="+(123.3/100)); } }
運行後的結果為:
0.05+0.01=0.060000000000000005
1.0-0.42=0.5800000000000001
4.015*100=401.49999999999994
123.3/100=1.2329999999999999
我發現每一個結果都不是精確值,都與正確的結果有著一定的出入。原因是:
使用double類型的數值進行斤算,其結果是不精確的,double類型的數值進行運算得不到“數學上精確”得結果,因為double為雙精度,占64個字節即64個二進制數,除去最高位表示正負符號的位,在最低位上一定會與實際數據產生誤差,在上面代碼中我們需要比64位更多的位才能精確的表示出來。package 課後練習; public class 課後練習05 { public static void main(String[]args) { int x=100; int y=200; System.out.println("x+y="+x+y); System.out.println(x+y+"=x+y"); } }
結果:
x+y=100200
300=x+y
第一個,“x+y="+x+y因為引號在前面,就會被當成幾個字符串的加法,就是把幾個連起來,所以最終的結果就是x+y=100200;
第二個,x+y+"=x+y"因為引號在後面,就先計算x+y的加法,所以結果為300=x+y;
課後作業-2