星期五, 10月 04, 2013

2013IT鐵人賽-19-Java05-Java字串以及常數

2013IT鐵人賽-19-Java05-Java字串以及常數




前一篇的文章 2013IT鐵人賽-14-Java04-Java命名規則與變數  介紹了命名規則與變數, 接下來我們來針對字串以及常數來進行一些基本的練習.


首先我們先補一個關鍵字 final 來練習常數的設定
final
  • 用來設定常數(不會變動的變數)
  • 用來設定終止類別的繼承  


常數
  • 不會變化的數值稱為常數
  • //希望變數的值不可以更改就使用常數的方式,使用的方法為 在宣告變數前面加上 final
  • //例如
  • final  int  y = 200;     



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


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


建立一個 java 原始檔如下
# cat   Basic_004_constant.java
class Basic_004_constant {
public static void main(String[] args){
//練習常數的宣告, 使用final 關鍵字宣告PI 為常數, 型態為float
final float PI;
//宣告 PI的值為 3.1416, 加上f 是告訴電腦他是浮點數, 不是double
PI=3.1416f;
// 列出 PI的值
System.out.println("PI="+PI);
//因為已經設定 final 關鍵字, 所以這邊如果在宣告一次PI的值編譯就會產生錯誤
PI=3.1415f;
}
}


接下來嘗試編譯 Basic_004_constant.java 程式就會產生下列的錯誤訊息


# javac  Basic_004_constant.java
Basic_004_constant.java:10: error: variable PI might already have been assigned
PI=3.1415f;
^
1 error


回去修改 Basic_004_constant.java, 將其註解起來


# cat   Basic_004_constant.java
class Basic_004_constant {
public static void main(String[] args){
//練習常數的宣告, 使用final 關鍵字宣告PI 為常數, 型態為float
final float PI;
//宣告 PI的值為 3.1416, 加上f 是告訴電腦他是浮點數, 不是double
PI=3.1416f;
// 列出 PI的值
System.out.println("PI="+PI);
//因為已經設定 final 關鍵字, 所以這邊如果在宣告一次PI的值編譯就會產生錯誤
//PI=3.1415f;
}
}


就可以順利通過編譯
# javac   Basic_004_constant.java


並嘗試執行 Basic_004_constant 程式
# java  Basic_004_constant
PI=3.1416



接下來我們來進行字串的練習
建立一個 java 原始檔如下
# cat Basic_005_stringAnnounce.java


class Basic_005_stringAnnounce {
public static void main(String[] args){
//這個練習進行String的宣告練習
//有關於String的詳細資訊可以看官方API 說明文件
//http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
//可以透過兩種方式來宣告字串
//第1種是原始資料型態的方式 String 字串物件的名稱=初始值;
String str1 = "This is string 1";
System.out.println("str1="+str1);
//當然也可以先宣告型態在給值
String str2;
str2="str2 - Give value after announce";
System.out.println("str2="+str2);
//第2種方式是透過建構子(Constructor)的方式來宣告
//宣告的方式為 String 字串物件的名稱 = new String(初始值);
String str3 = new String("This is str3 by constructor");
System.out.println("str3="+str3);
//也可以在建立建構子的時候先不給值, 之後再來設定值的內容
String str4 = new String();
//這邊會看到如果沒有設定值, 預設是空字串
System.out.println("str4 default value is="+str4);
//接下來我們設定 str4 的值
str4="str4 - Give value after announce";
System.out.println("str4="+str4);
//另外也可以直接使用 等號的方式來進行值的給予, 但是還是要宣告型態
String str5;
str5=str4;
System.out.println("We use str5=str4, it will show  "+str5);
//接下來研究如果變更str4的內容, 那str4 以及 str5 又會如何?
str4="Change str4 value after give it's value";
System.out.println("Try to find out, when str4 is change, what happen to str5?");
System.out.println("str4="+str4);
System.out.println("str5="+str5);
}
}


接下來編譯 Basic_005_stringAnnounce.java
# javac  Basic_005_stringAnnounce.java


並執行 Basic_005_stringAnnounce.java 觀察其輸出


# java Basic_005_stringAnnounce
str1=This is string 1
str2=str2 - Give value after announce
str3=This is str3 by constructor
str4 default value is=
str4=str4 - Give value after announce
We use str5=str4, it will show  str4 - Give value after announce
Try to find out, when str4 is change, what happen to str5?
str4=Change str4 value after give it's value
str5=str4 - Give value after announce


準備將相關檔案傳送到 GitHub 上面
# cd   /root/
# git  add   java/*
# git  commit  -m   "Add java Basic exercise file constant and stringAnnouce"
[master 0cd1772] Add java Basic exercise file constant and stringAnnouce
4 files changed, 47 insertions(+)
create mode 100644 java/Basic_004_constant.class
create mode 100644 java/Basic_004_constant.java
create mode 100644 java/Basic_005_stringAnnounce.class
create mode 100644 java/Basic_005_stringAnnounce.java


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


結束今天的任務, Java 字串以及常數練習 :-)


Fun with Day 19 ~

沒有留言: