跳到主要內容

Java-Java 語言基礎(1)


Java語言基礎-1



---------------------------------------------------------
---------------------------------------------------------



1.Java是物件導向語言,類別中會有兩種成員分別為屬性(attribute)方法(method),兩者成員描述這個類別擁有甚麼狀態及能做甚麼事情,
下為一個完整的Java程式結構與對應名稱:

class  Cat
{
類別屬性、物件屬性
類別方法(){ ... }、物件方法(){ ... }、建構子()     
}

(1)建構子也是一種方法;在方法內所宣告的變數稱之為區域變數,變數只能在這個區域使用,區域為{ }範圍內。例如,下面Cat類別中的Run()方法,裡面有一個變數名稱為km,型態為int,值為10

class  Cat
{
           Run(){
                     int km = 10;
           }
}

(2)類別成員若加入static會變成專屬該類別所有的屬性與方法,也就是類別成員(static member)。沒加上static就是物件成員(non-static/instance member)

(3)建構子(constructor)是屬於物件成員,不可加上static修飾元。

(4)程式進入點,基本的Java程式碼都從main()方法這開始:
public static void main(String[] args) {  }


2.
(1)區域變數:在方法或建構子裡面所定義的變數稱之為區域變數,區域變數的生命週期僅存於這個方法,方法一旦執行完畢,區域變數就自動歸還給系統,區域變數不可加上static
可以利用” . ”運算子讓我們存取到該類別的成員。
à範例如下,兩個類別,分別為PetStorePuppyPetStore這類別從main開始執行,三個區域變數dogNamedogKinddogColor存取另一個類別Puppy的類別成員,屬性:
public class PetStore{
                public static void main(String[] args){
                                String dogName = Puppy.name;
                                String dogKind = Puppy.type;
                                String dogColor = Puppy.color;

                                System.out.println("我有一隻聰明的" +dogKind +
                                ", 名叫" +dogName + ", 它的顏色是" + dogColor + "色的");
                                System.out.print("他每天都會幫我");
                                Puppy.skill();
                }
}

//這是一個寵物的類別
public class Puppy{
                //寵物名稱變數
                public static String name = "小黃";
                //寵物品種變數
                public static String type = "拉不拉多";
                //寵物的外觀色澤變數
                public static String color = "米黃";
                //寵物的特殊才藝1方式
                public static void skill(){
                                System.out.println("拿報紙與開電視");
                }
}

(2)具有回傳值的方法:void屬於無回傳值的方法,若要在方法中設計有回傳值,則必須於方法中定義回傳值的資料型態,Java語法中不可以設計同時具有回傳值和void的方法。
à依序上面兩個類別,新增一個方法。public static String skill2() {  }
public class PetStore{
                public static void main(String[] args){
                                String dogName = Puppy.name;
                                String dogKind = Puppy.type;
                                String dogColor = Puppy.color;

                                System.out.println("我有一隻聰明的" +dogKind +
                                ", 名叫" +dogName + ", 它的顏色是" + dogColor + "色的");
                                System.out.print("他每天都會幫我");
                                Puppy.skill();

                                String dogskill = Puppy.skill2();
                                System.out.println(dogskill);

                }
}

//這是一個寵物的類別
public class Puppy{
                //寵物名稱變數
                public static String name = "小黃";
                //寵物品種變數
                public static String type = "拉不拉多";
                //寵物的外觀色澤變數
                public static String color = "米黃";
                //寵物的特殊才藝1方式
                public static void skill(){
                                System.out.println("拿報紙與開電視");
                }
                /**寵物的特殊才藝2方式*/
                public static String skill2(){
                                String skill = "翻書及拿物品";
                                return skill;
                }
}


(3)何時使用return關鍵字:在具有回傳值方法中,最後都必須使用reutrn關鍵字,再加上法定回傳值回傳給呼叫端,void方法原則上是不用此關鍵字,不過若想要在void方法中使用,必須在return後面緊接著加上;,如return;,表示無回傳值

3.註解:註解會執行程式時,忽略被註解的程式。建議平時養成寫註解習慣,並且利用文件註解標記來製作成是說明書,以利日後自己或他人使用、查詢或維護。
(1)文件註記:/** 註解文字 */。撰寫好之後,利用:Javadoc –verbose –private XXX.java(會產生一堆檔案)
(2)單行註解: //
(3)多行註解:/*…*/


()packageimport
1.packagejava程式檔實際存放的位置息息相關,例如package pet.water 表示該套件所有的類別必須存放於 …\pet\water目錄之下,以便編譯器(javac.exe)在執行編譯時能將所產生的class檔放到指定路徑下。

2.可利用下列方式存取class
a.完整路徑,套件名.類別名àwater\Fish.javaPetStore.java(不同資料夾)
b.透過import來定義:import water.*; 或是import water.完整檔名;

3.為何.java檔案中可以直接使用System類別,以及該類別所提供的成員?
java程式規範中,預設會將java.lang.*,就是基礎類別函式庫(已經寫好的類別函式庫,名為Java 2 platform packages)會自動import進來,被封裝在
C:\Program Files\Java\jdk1.8.0_101\jre\lib\rt.jar

4.import會影響效能嗎?不會,Java編譯器提供聰明的機制,編譯器只會import程式碼中有用到的類別。


()存取修飾元(Modifier):用來宣告類別、屬性與方法(含建構子)可被存取的權限。
分四個等級:
1.private:同一個class才可存取
2.default:同一個packageclass才可存取
3.protected:同一個packageclass才可存取,不同package的要有繼承關係才可存取。
4.public:皆可存取。
類別(class)只能使用publicdefault,若是內部類別,上述四種皆可定義使用,屬性與方法也可使用。


()Java命名規則:第一個字元必須是英文字母、底線或$其中之一,不可為數字及空白。

留言

這個網誌中的熱門文章

107年高考資訊處理上榜心得(自修)

107 年高考資訊處理上榜心得 ( 自修 ) ------------------------------------------------------------------------- l    背景及報考動機 l    個人成績 l    準備經驗及時程規劃 l    各科準備方式 l    Q&A ------------------------------------------------------------------------- l    背景及報考動機: 小弟很幸運地今年考上高考資訊處理 ( 正取尾巴錄取 ) ,剛好這兩年開缺很多,今年總共錄取 117 人,正取 92 ,增額 25 人。因為自己也在網路上參考很多心得文章,所以想分享自己這次考上的心得。 先說一下自己考公職的歷程,所有的考試,都未曾補習過,小弟比較喜歡自己讀。考完公職才發現從小到大的考試根本無法比。準備資訊處理的考試前前後後時間加起來算是一年左右吧。 101/06              大學畢業 ( 資訊傳播工程學系 ) 102/09              考取特考交通行政 ( 參考: 交通行政上榜心得 ) 104/07              差 0.5 分考上高考交通行政 105/01              考取桃園捷運有限公司 106/03-12        邊工作 ( 桃捷 ) 邊念 106/07              差 6 分考上高考資訊處理 107/01            離職當全職考生 小弟並非第一次參與國家考試了,只是這次考試類別從交通行政轉換成資訊處理。本來考上桃捷公司就沒有想轉換跑道了,但在同事勸說下,再加上去年的高考考試,差 6 分考上,所以才毅然堅持地辭掉工作,當個全職考生,算賭一把機會 ( 只給自己兩年時間 ) 。 l    個人成績 - 資訊處理 107 年高考 ( 正取 ) 國文:                     56 ( 申 42 、測 14) 法學與英文:         66 資通網路:             56 程式語言:             7

電腦編碼系統介紹

( 參考資料: wiki + 淺 談 電腦 編 碼 )   工作上在練習寫 Struts 架構時,發現編碼蠻重要的,例如設定登入頁面,設定編碼不一致時會出現編碼錯誤 ,加上自己不是很懂整個概念,而整理了這篇電腦編碼系統。 電腦編碼系統介紹: -------------------------------------------------------- ( 一 ) 基礎概念 ( 二 ) 常見的編碼及說明 ( 三 ) 網際網路的發展 ( 四 ) Unicode -------------------------------------------------------- ( 一 ) 基礎概念: 由於人能理解各種特殊複雜的文字及符號,而電腦只懂得兩個數字,即 0 與 1 ,因此我們必須制定一些規則,將特殊複雜的文字及符號,用 0 與 1 的數字組合表示。 如大寫英文字母” A ”,在 ASCII 編碼中,” 1000001 ” (7bits) 表示。” 1000001 ”稱為 字元集、字符集 (Character encoding) 。     所以字元編碼是一種系統,會將支援的字元集中的每一個字元的與代表該字元的某個值配對。 PS : Bit( 位元 ) 為最小單位: 0 或 1 。 Bytes( 位元組 ) 由八個 Bit 所組成。 ( 二 ) 常見的編碼及說明: 1.      ASCII(American Standard Code for Information Interchange) : (1)   美國資訊交換標準碼,字面意思就知此編碼由美國制定,為基於拉丁字母的一套字元邏輯, ASCII 編碼僅用 7bits ,最多僅能表示 2 7 , 128 個字元,所以能展現的字元極其有限,只能表達英文字母 A-Z 、 a-z 、數字 0-9 及少量標點符號,適合用於開發英文環境中。 (2) 每台電腦都有此編碼,用來儲存英文字元素。其他語言國家透過相同的 ANSI 編碼,去做自己國家的語言文字對應,因而產生不同的編碼系統。若是用同樣文字轉換成別的編碼辨識,會形成亂碼。 ( 以 2 個 Bytes- 16bits 對應一個文字 進行儲存 ) 2.    

閱讀心得:真希望17歲就學會的金融知識

書名:真希望 17 歲就學會的金融知識         作者:慎 泰俊 (Shin Taejun) 此書是在 2013 年 2 月 11 日記錄的心得內容,因學校教育沒有教導我們理財知識,而去書局找一些基本書來學習,本書由基礎觀點一步一步深入教導,例如了解風險與報酬、分散風險、現在與未來價值、應用篇 … 等,書中內容附有相關計算公式。除了教導理財知識,書中也提到我們可以把時間拿來做甚麼事情,這也是一種投資,投資自己。 想學習理財 / 投資等知識,必須一步一步慢慢來,才能成為理財高手,絕對沒有一步登天賺大錢的神蹟;重點在於自己的判斷與思考。 書中提到當一個 BETA 值低的人,就是做很少做的事情或專研該領域,當發生危機時,你會是一個很重要的人,因為只有你懂,你能處理別人處理不了的危機風險。 ※ BETA 係數說明 ---------------------------- 一、前言 二、朝會 三、 第一堂課 - 風險與報酬 四、 第二堂課 - 分散風險 五、 第三堂課 - 現在價值與未來價值 六、 第四堂課 - 應用篇 - 國文 七、 第五堂課 - 應用篇 - 社會 八、老師指導時間 九、放學後 ---------------------------- 一、前言 古羅馬思想家塞內卡 (Lucius Annaeus Seneca) 說過:「人生非常漫長,若能全部加以有效利用,就能豐富人生,完成最偉大的事。」 不論是任何狀況, 永遠都有無限的可能。只要你希望,就可以實現幾乎所有的事 。 二、朝會 1.       不容許任何失敗、把自己牢牢束縛住的人、只跟與自己類似的人相處的人、只跟其他人作相同事情的人,都是 無法妥善處理不確定事務的人 。 為了順利使用某事物,並加以妥善處理, 第一步就是瞭解其結構 。對於不確定事物的結構,只有重要三件事要注意: n    第一, 愈能接受不確定性,回報也愈大。 n    第二, 有辦法成功降低不確定性。 n    第三, 確定的現在與不確定的將來是兩碼子事 。 2.       先學習如何 思考重點 。 金融理論採用報酬 ( 回報 ) 與風險 ( 結果的不確定性 ) 的思考