1. 程式人生 > >課後作業-2

課後作業-2

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