星期三, 4月 21, 2010

2010-04-21_Java_SL100-3

2010-04-21_Java_SL100-3

Notes:
  • Net Beans 程式會將 class 的程式放在 專案名稱/src 資料夾底下
  • 除了 java.lan 以外的套件都要 import
  • Java 程式起點 ( Entry point ) 是從main 方法( Method ) 開始
  • 類別裡面有方法, 方法的裡面有程式.
  • System.out.println("Hello! World!")
    • 使用System 類別的out 成員( Member ), 要求使用out上的 println()方法,在螢幕顯示 Hello! World!
  • 建議一個檔案放一個類別.(比較不會混亂)
  • 使用 javac  -verbose 顯示詳細資訊
  • javac -encoding utf8 ( java 預設使用 ANSI編碼, 如果是使用 unicode編碼 要指定 -encoding)
  • /** 為文件註解 ( 可以使用 javadoc  *.java 產生 java 文件)

常見的錯誤訊息
  • cannot find symbol ( 找不到這個類別, 一般來說是沒有 import )
  • package system does not exit ( package 資料夾不存在 )
  • HelloWorld.java:4:';' expected ( 程式第 4列 忘記加 ; )
  • illegal character: \12288 ( 可能是編碼問題, 例如使用 unicode 編碼)

資料型態
整數:    byte        short        int         long
                1byte     2byte     4byte    8byte
小數:    float    double
                4        8
字元:    char
真假值:    boolean

每一個資料型態對應到一個類別, 可以使用MAX_VALUE 以及 MIN_VALUE來查看大小值
例如:
        int x=Integer.MAX_VALUE;
       System.out.println("Integer Max = "+x);
       int y=Integer.MIN_VALUE;
       System.out.println("Integer Min = "+y);


Lab: 運算練習
在NetBeans 內新增一個 Main Class 取名為 Airth1
程式內容如下

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author max
 */
public class Arith1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int a,b,c;
        a = 1;
        b = 3;

        c = a+b;
        System.out.println("c = "+c);

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

        c = a*b;
        System.out.println("c = "+c);

        c = a/b;
        System.out.println("c = "+c);//預設為整數,所以會顯示為0 (結果為0.333-)
        // TODO code application logic here
    }

}


Lab: a++ and ++a

自己整理一下, 程式碼如下

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author max
 */
public class Arith1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int a,b,c;
        a = 1;
        System.out.println("a ="+a);
        b = 2;
        a++;
        System.out.println("a = "+a);

        System.out.println("---------First Lab-----------------------------");
        System.out.println("a = "+a);
        c=a++;//會先執行 c=a; 然後才是a=a+1;
        System.out.println("Run c=a++; 會先執行 c=a; 然後才是a=a+1");
        System.out.println("a = "+a);
        System.out.println("c = "+c);

        System.out.println("---------Second Lab----------------------------");
        System.out.println("a = "+a);
        System.out.println("c = "+c);
        c=++a;//會執行 a=a+1; 然後才是c=a;
        System.out.println("Run c=++a; 會執行 a=a+1; 然後才是c=a");
        System.out.println("a = "+a);
        System.out.println("c = "+c);

        
        // TODO code application logic here
    }

}

輸出結果如下

a =1
a = 2
---------First Lab-----------------------------
a = 2
Run c=a++; 會先執行 c=a; 然後才是a=a+1
a = 3
c = 2
---------Second Lab----------------------------
a = 3
c = 2
Run c=++a; 會執行 a=a+1; 然後才是c=a
a = 4
c = 4


Lab: 轉型

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author max
 */
public class Arith1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        int x,y;
        double z;

        x=121;
        y=7;
        z=x/y;
        System.out.println("還未轉型前 z 不能顯示小數, 因為 x, y 為整數");
        System.out.println("z = "+z);
        z=(double)x/y;
        System.out.println("轉型後 z 可以顯示小數");
        System.out.println("z = "+z);

        
        // TODO code application logic here
    }

}

輸出結果參考

還未轉型前 z 不能顯示小數, 因為 x, y 為整數
z = 17.0
轉型後 z 可以顯示小數
z = 17.285714285714285









沒有留言: