星期日, 9月 29, 2013

2013IT鐵人賽-14-Java04-Java命名規則與變數

2013IT鐵人賽-14-Java04-Java命名規則與變數



在前一篇的文章 ”2013IT鐵人賽-11-Java03-Java檔案的基本結構” 有提到
java 的類別名稱
  • 英文, 數字, 以及底線( _ ) 來構成
  • 開頭一定要是英文字開頭, 不可以是數字或是底線開頭.  (不然本來編碼上面想要直接用數字來開頭編碼)
  • 如果是類別名稱, 建議首字英文字要大寫


所以Java 的第四篇我們就來聊聊Java 的命名規則與變數吧.


識別字命名規則
  • 常數
    • 全部使用大寫,如果有兩個單字, 可以加上底線
    • 例如: MAX_LEN
  • 變數
    • 全部使用小寫, 如果有兩個單字以上, 第2個單字開頭大寫
    • 例如: rectWidth
  • 方法
    • 全部使用小寫, 如果有兩個單字以上, 第2個單字開頭大寫
    • 例如: calArea
  • 類別
    • 第1個字母大寫, 後面由一個以上的單字組成
    • 例如: Cperson, CStack
      • 可以用C代表Class  


命名規則最好就跟著大家的方式來進行, 以免之後不好理解.


接下來談談變數吧 :-)
變數
  • Java的資料處理基本單位稱為變數
    • 變數代表程式在執行過程中可能會被改變的某個數值
    • 變數宣告
      • 使用變數前必須先宣告, 一般會將區域變數放在方法(method)的開始處
      • 變數宣告範例
        • //語法:
        • //資料型態  變數名稱
        • //方式1 先定義型態
        • int x;
        • //接下來定義初始值
        • x = 100
        • //方式2 宣告同時初始化變數
        • int y = 200;
    • 在類別(class)內的變數視為該類別的欄位(fields)
    • 在方法(method)內宣告的變數則為該方法的區域變數(Local Variables)
  • 參數 (Parameters)
    • 用於method呼叫時接受傳遞資料
  • 區域變數 (Local Variables)
    • 儘限於某個method之內的變數
  • 實體變數 (Instance Variables)
    • 隸屬於某個物件的變數, 必須透過物件才能存取
  • 類別變數 (Class Variables)
    • 隸屬於某個類別的變數, 該類別的物件都共用此變數
    • 必須使用 static 關鍵字宣告
      • 如果沒有加上static修飾字, 則該變數存在於該類別的每一個物件中, 且彼此獨立, 稱為實體變數 (Instance Variables)
      • 若使用static宣告, 則每一個物件都共用該變數, 稱為類別變數(Class Variables)  


在使用變數的時候, 我們必須要宣告變數的型態, 所以在實作之前, 我們也來把型態整理一下.


資料的型態
又稱為純量,以便與物件區別
  • 原始資料型態 / 基本型態 primitive type
    • 整數型
      • byte
        • 1位元組的整數
      • short
        • 2位元組的整數
      • int
        • 3位元組的整數
          • int 是預設的整數型別
      • long
        • 4位元組的整數
          • 使用long的時候會在後面加上大寫或是小寫的L
    • 布林型
      • boolean
        • 真或是假
    • 實數型
      • float
        • 4位元組單精數浮點數
          • Java 碰到 float 要特別小心. 一定要在數字的右方加上大寫的F.
          • (有可能喪失數值的精確度, 沒有加上F 預設浮點的大小會給 64 bits, 但是前面宣告 float 就會被截斷,放到 32 bits 內)
      • double
        • 8位元組單精數浮點數
          • double 是預設的實數型別
    • 字元型
      • char
        • 2 位元組的文字資料
        • 需使用 ' ' 來包裝
          • 例如
          • char c = 'Test'
        • 可使用數值的方式指定字元的Unicode,除了10進位以外, 還可以使用2進位, 8進位, 16進位. 2進位表達整數是JDK7才支援的功能.     
    • 預設值
      • 如果宣告變數時沒有給定變數的預設值,
      • 那java會將預設值設定為0 或是false
  • 非基本型態 / 參考型態 Reference type
    • 非以上的基本型態就列為Reference type
      • 例如是物件參考  


好吧, 說了這麼多, 接下來開始練習一下吧.


一樣連接到 EasyCloud 的VM並取得終端機.(使用 VNC 或是 SSH 皆可)
由於我練習的時候 git 目錄是放在 /root 目錄, 所以才在這邊操作.


切換到 java 練習目錄
# cd   /root/java


建立一個 java 原始檔如下
#vi  Basic_003_variablesAnnounce.java


class Basic_003_variablesAnnounce {


public static void main(String arg[]){
//宣告integer整數i, 並給予初值
int i;
i =100;
//宣告boolean布林b, 並給予初值
boolean b;
b = false;
//宣告float單精準度浮點數f, 並給予初值
double d;
d = 1.23;
//宣告char字元 c, 並給予初值
char c;
c = 'c';
//列出變數的值
System.out.println("integer i="+i);
System.out.println("boolean b="+b);
System.out.println("double d="+d);
System.out.println("char c="+c);
System.out.println("=====我是分隔線=====");
//觀察最大值,最小值, 長度
//這個部份可以練習查詢API
//可以到http://docs.oracle.com/javase/7/docs/api/ 進行查詢
//以這邊的範例來說可以點選左上角 package 區內的 java.lang
//然後點選畫面左邊 Class 內的 Integer 類別
//就可以在Field Summary 內看到有 MAX_VALUE 可以使用
System.out.println("Integer Max="+Integer.MAX_VALUE);
System.out.println("Integer Min="+Integer.MIN_VALUE);
System.out.println("Integer bits="+Integer.SIZE);
System.out.println("=====我是分隔線=====");
//Boolean 並沒有 MAX_VALUE
System.out.println("Boolean Type="+Boolean.TYPE);
System.out.println("=====我是分隔線=====");
//Double 的相關資訊
System.out.println("Double Max="+Double.MAX_VALUE);
System.out.println("Double Min="+Double.MIN_VALUE);
System.out.println("Double bits="+Double.SIZE);
System.out.println("=====我是分隔線=====");
//Char 的相關資訊
System.out.println("Char bits="+Character.SIZE);
}


}



編譯 Basic_003_variablesAnnounce.java 原始檔案
# javac   Basic_003_variablesAnnounce.java


執行程式
# java   Basic_003_variablesAnnounce
integer i=100
boolean b=false
double d=1.23
char c=c
=====我是分隔線=====
Integer Max=2147483647
Integer Min=-2147483648
Integer bits=32
=====我是分隔線=====
Boolean Type=boolean
=====我是分隔線=====
Double Max=1.7976931348623157E308
Double Min=4.9E-324
Double bits=64
=====我是分隔線=====
Char bits=16



準備將相關檔案傳送到 GitHub 上面
# cd   /root/
# git  add   java/*
# git  commit  -m  "Add java Basic exercise file variablesAnnouce to git"
[master f8c8ad6] Add java Basic exercise file variablesAnnouce to git
2 files changed, 44 insertions(+)
create mode 100644 java/Basic_003_variablesAnnounce.class
create mode 100644 java/Basic_003_variablesAnnounce.java


# git  push  origin  master
Username for 'https://github.com': 您的帳號
Password for 'https://sakanamax@github.com': 您的密碼
Counting objects: 7, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 1.95 KiB, done.
Total 5 (delta 1), reused 0 (delta 0)
To https://github.com/sakanamax/2013ironman.git
  e510744..f8c8ad6  master -> master




結束今天變數宣告的任務, 但是今天最大的收穫有可能是讓我們這樣的入門者有機會練習查詢java 的API 喔  :-)

Fun with Day 14 ~

沒有留言: