1.介面interface
2.多型Polymorphism
3.例外處理
4.package部屬
一、介面interface
目的:規範開發方法。
方式:宣告空的給兒子自己去使用。
※要使用介面的條件必須為「沒有繼承關係的類別」。
變數型態為「public static final」,必須給初值。
方法型態為「public abstract」,不給參數且不寫{}。
語法:class 類別名稱 implements 介面名稱1,介面名稱2, ...{}
interface 介面名稱 extends 介面名稱1,介面名稱2, ...{
}
♠介面覆蓋的問題
♦complier error
♠修正後即可執行
♠測試變數型態是否為public static final
♦complier error
二、多型polymorphism
目的:使用同一個變數可以操作多種空間。
語法:父類別 物件變數=new 子類別建構子方法。
♠測試-有覆蓋成功的方法可以直接呼叫;否則不能呼叫
♦祖父 obj1=new 父親建構子
♦complier error
♦obj1記憶體配置
♠強制轉型:切換成以parent的角度來操作,即可成功。♠另一層的關係 「祖父 obj3 = new 孫子建構子」
以patent角度來操作,但無法在這個類別中找到method3
♦complier error
三、例外處理
此表需要牢記類別名稱與關係
例外有兩種:1.系統錯誤Error:程式設計師不需要處理此例外
2.例外Exception:
可以再分五種:
(1)執行例外RuntimeException
程式設計師不需要處理此例外
應該要用判斷式直接處理掉
(2)輸出輸入例外IOException
(3)類別例外ClassNotFoundException
(4)資料庫例外SQLException
(5)中斷例外InterruptedException
目的:不讓程式碼直接中斷。
語法:
♠測試例外產生時,會發生什麼樣的事情
♦故意把除數輸入0。
再繼續執行後,發生例外!
屬於RuntimeException
♠修正上面的程式碼
原本RuntimeException是不需要用例外處理,這邊為測試程式碼,所以故意寫例外處理。
測試例外會不會被catch捕捉,並測試finally是不是一定會執行。
♦例外有被捕捉 且 一定會執行finally
♠catch的例外類別,子類別要寫在上面,父類別要寫在下面;否則會complier error!
♦它說例外已經被捕捉了!
♠這個除法還是會有例外產生,就是輸入浮點數時...
♦inputMismatchException不是靜態
所以要先import
♠練習處理例外
四、package部屬
資料夾的名稱選擇,建議使用公司網址倒過來寫。
例如:tw.com.pcschool.Sales (銷售部門)
.Human (人事部門)
.Util (共通性高的)
♠實作部屬流程(有好多步驟...)
♦寫第一個類別
♦存檔(.java)
♦轉換資料夾
編譯
♦會發現到已經建立一個資料夾shape
♦下層還有一個資料夾rect
♦在rect資料夾裡面
有一個已經編譯好的檔案
♦寫第二個類別
♦存檔(.java)
♦編譯
♦在rect資料夾底下,又編譯好一個檔案
♦寫第三個類別
♦存檔(.java)
♦編譯發生錯誤
因為不同資料夾
所以必須要import其他類別
♦import有使用到的類別
♦編譯錯誤
因為Rectangle並不是公開的
所以還要再回去修改Rectangle類別的存取範圍
♦修改成 公開 Public
♦先編譯Rectangle
再編譯Cube
就可以編譯成功
♣如果把super.area()修改成len*width的話
編譯又會錯誤
♣編譯錯誤,因為len與width只能給鄰居使用
但Cube編譯後放在不同資料夾內
所以沒有辦法直接使用
♣再回去修改Rectangle類別
len與width的存取權限使用protected
♣這樣編譯就會成功
♦看一下編譯成功後,資料夾的樣子
有一個cube資料夾
底下有一個編譯好的檔案
♦寫主程式
♦存檔(.java)
♦編譯錯誤
放在不同資料夾
所以要import
♦回去修改主程式
加上import shape.rect.Rectangle;
♦還是編譯錯誤
剛剛寫的Cube類別也跟主程式放在不同地方
必須修改存取權限,才能使用
還有Rectangle的變數len,width也是權限不夠,必須修改
♦回去修改Cube的存取權限
♦回去修改Rectangle的存取權限
♦怎麼還是編譯錯誤
原來Cube裡的height權限不夠
♦再回去Cube修改變數height的權限
♦總算編譯成功了
♦看一下資料夾
♦matter資料夾中有一個編譯好的主程式檔案
♦執行成功嚕~
♠如果要把剛剛寫的程式碼(.java),全部編譯到令一個資料夾底下,可以使用另一個語法。
♦把它全部編譯到Sunday java 7 package2
♦語法如下
怪了~ 怎麼編譯錯誤
♦最後發現到是資料夾名稱的問題
資料夾命名時,不可以有空白
否則編譯的語法會因為空白而無法正常執行
♦再試一次
編譯過啦!
♦看看結果
SundayJava7Package2資料夾底下
有建立我們部屬的東西了!
♦也可以執行唷~
後記:1.packge準備打包成程式~
下星期將介紹如何封裝程式檔
然後包裝成給客戶的程式嚕~
2.學了這麼多,原來還只是基礎
我想要寫圖形介面、多工啦~
3.今天中餐離巨匠很近,是拉麵唷~點了一碗很陽春的拉麵~65元
沒有留言:
張貼留言