## 今天的筆記 **物件基礎導向** 1.類別CLASS:算是一個藍圖、一個範本、一個可參考的文件,他 沒有 實體 (Instance) 的概念,屬靜態的。 2.物件OBJECT:物件是一個看的到、摸的到的實體,屬於動態的, 狀態會隨時改變,但架構與行為不會改變。 **Wireframe** 1.呈現產品頁面上主要的資訊 2.呈現資訊在頁面上的排版與架構 3.便於描述使用者如何可視覺化,便於與產品互動 **開發流程** 1.瀑布式開發 2.敏捷開發 3.測試驅動 **駝峰式命名** 1.小駝峰式命名法:第一個單字以小寫字母開始;第二個單字的首字母大寫,例如:firstName、lastName 2.大駝峰式命名法:每一個單字的首字母都採用大寫字母,例如:FirstName、LastName、CamelCase,也被稱為Pascal命名法 **開源與非開源** 開源:Windows 非開源:Linux **String字串**: String是一個比較特別的資料型態,它是一個物件類別( Object ),基本型態所對應的物件類別,可直接給於相同類型的值,而不需使用new來產生物件,而String資料型態跟基本型態一樣可以直接給於值,不過String沒有相對應的基本型態。 **Int變數**: 是基本資料型別(原始資料型別),直接存數值。(int預設值為0) **Interger整數**: Integer實際是對象的引用,指向此new的Integer對象(integer預設值為null) **int與Integer的使用對比** 1.由於Integer變量實際上是對一個Integer對象的引用,所以兩個通過new生成的Integer變量永遠是不相等的(因為new生成的是兩個對象,其內存地址不同) 2.Integer變量和int變量比較時,只要兩個變量的值是向等的,則結果為true(因為包裝類Integer和基本數據類型int比較時,java會自動拆包裝為int,然後進行比較,實際上就變為兩個int變量的比較) 3.非new生成的Integer變量和new Integer()生成的變量比較時,結果為false。 4.對於兩個非new生成的Integer對象,進行比較時,如果兩個變量的值在區間-128到127之間,則比較結果為true,如果兩個變量的值不在此區間,則比較結果為false **Scanner**: 是一個簡單的文字讀取器,可以解析字串成各個基本資料型態。 這個Scanner類別被放在 java.util套件中,記得要加import **split分割**: split(delimiter):將字串拆分為陣列 split(regex, limit):將字串拆分為一個陣列並保留尾部的空字串 Math floor:函式會回傳小於等於所給數字的最大整數。 ## 今天學到什麼 類別CLASS/物件OBJECT 駝峰式命名 三種開發流程 int與Integer的使用對比 Scanner的應用 split的應用 String的應用 CMD CD運用 ## 今天的作業 身分證製造器 public class ID { public static void main(String[] args) { String[] idFirst = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; // String idNumber = ID.IDRandom(); int[] idFirstNumber = {10, 11, 12, 13, 14, 15, 16, 17, 34, 18, 19, 20, 21, 22, 35, 23, 24, 25, 26, 27, 28, 29, 32, 30, 31, 33}; int r1 = (int) Math.floor((Math.random() * 26 + 1)); //floor 1.1111111 -> 1取餘數 System.out.println("r1:" + r1); System.out.println(" 第一個英文數字:" + idFirst[r1]); int idSex = (int) Math.floor((Math.random() * 2 + 1)); System.out.println("idSex:" + idSex); verifyIdString = verifyIdString + idFirst[r1] + Integer.toString(idSex); System.out.println("verifyIdString:" + verifyIdString); int sum =0; for (int i = 0; i < 7; i++) { int r2 = (int) (Math.floor(Math.random() * 10) + 1); int idr3 = r2; String[] idpn = Integer.toString(20).split(""); System.out.println("idpn:" + idpn[0]); System.out.println("idpn:" + idpn[1]); verifyIdString = (verifyIdString + idFirstNumber[r2]); System.out.println("r2:" + r2); if (i == 0) sum = sum + r2 * 7; if (i == 1) sum = sum + r2 * 6; if (i == 2) sum = sum + r2 * 5; if (i == 3) sum = sum + r2 * 4; if (i == 4) sum = sum + r2 * 3; if (i == 5) sum = sum + r2 * 2; if (i == 6) sum = sum + r2 * 1; } System.out.println("sum:"+sum); } }