freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

javaee基礎教程第5章類的高級特性ppt(編輯修改稿)

2024-11-12 16:16 本頁面
 

【文章內(nèi)容簡介】 靜態(tài)方法和靜態(tài)域。當然,也可以只導入某個靜態(tài)方法,只要把 .* 換成靜態(tài)方法名就行了。以后在這個類中,就可以直接用方法名調(diào)用靜態(tài)方法,而不必用“ ClassName.方法名”的方式來調(diào)用。 靜態(tài)導入 返回 Java EE基礎教程 25 2021年 11月 10日星期三 ? 靜態(tài)導入語句看起來和普通的 import語句非常相似。但是,普通import語句從某個包中導入的是一個或所有的類,而靜態(tài) import語句從某個類中導入的卻是一個或所有的類方法以及類變量。需要注意的是:針對一個給定的包,不可能用一行語句靜態(tài)地導入所有類的所有 類方法和類變量。也就是說,不能這樣編寫代碼: ? import static .*。 // 編譯出錯 ! ? 如果一個本地方法和一個靜態(tài)導入的方法有著相同的名字,那么本地 方法被優(yōu)先調(diào)用。 ? 例如,源文件頂部添加: import static .*。 那么就可以使用 System類的靜態(tài)方法和靜態(tài)域,而不必加類前綴。如: ? (hello world)。 //相當于 (hello world)。 ? exit(0)。 //相當于 (0)。 Java EE基礎教程 26 2021年 11月 10日星期三 ?導入靜態(tài)方法和導入靜態(tài)域有兩個實際的應用: ? 算術(shù)函數(shù),對 Math類使用靜態(tài)導入,就能更自然的使用算術(shù)函數(shù)。如: sqrt(pow(x,2)+pow(y,2))。 ? 笨重的常量,如果需要使用大量帶有冗長名字的常量,就應該使用靜態(tài)導入。如: ? Date d = new Date()。 ? if ((DAY_OF_WEEK) == MONDAY) ?看起來比 if (() == ) 清晰。 Java EE基礎教程 27 2021年 11月 10日星期三 例 56 導入靜態(tài)方法舉例,計算直角三角形的斜邊。 程序清單: ch05\ package ch05。 import static 。 //導入靜態(tài)方法 sqrt() import static 。 //導入靜態(tài)方法 pow() class Hypot { public static void main(String args[]) { double side1, side2。 double hypot。 side1 = 。 side2 = 。 // 靜態(tài)導入后 ,不再須要通過類名 Math來調(diào)用方法 sqrt()和 pow(). hypot = sqrt(pow(side1, 2) + pow(side2, 2))。 (給定 RT△ 的兩邊邊長為 : + side1 + 和 + side2 + ,其斜邊邊長為 :+hypot)。 } Java EE基礎教程 28 2021年 11月 10日星期三 ?inal 關鍵字可以修飾類、類的成員變量和成員方法,但 final 的作用不同。 ?(1) final 修飾成員變量,則成員變量成為常量。為了聲明一個 final變量,可以在類型之前的變量聲明使用 final關鍵字,例如: ?final type piVar=。 ?可以在任何作用域聲明一個 final變量。修飾成員變量時,定義時同時給出初始值,而修飾局部變量時不做要求。這個語句聲明了一個 final變量并對它進行了初始化。如果在后面還想給 piVar賦其他的值,就會導致編譯錯誤,因為 final變量的值不能再改變。 final關鍵字 返回 Java EE基礎教程 29 2021年 11月 10日星期三 ?(2) final 修飾成員方法,則該方法不能被子類重寫。有些方法希望始終保持它在父類中的定義而不會被子類修改以保證安全,此時可以使用 final關鍵字來阻止方法重寫。例如: public final returnType methodName(paramList){ … } Java EE基礎教程 30 2021年 11月 10日星期三 ? (3) final修飾類,則類不能被繼承。由于安全性的原因或者是面向?qū)ο蟮脑O計上的考慮,有時候希望一些類不能被繼承,例如, Java中的 String類,它對編譯器和解釋器的正常運行有很重要的作用,不能對它輕易改變,因此把它修飾為 final 類,使它不能被繼承,這就保證 String類型的唯一性。同時,如果你認為一個類的定義已經(jīng)很完美,不需要再生成它的子類,這時也應把它修飾為 final 類,定義一個 final類的格式如下: final class finalClassName{ …… } ?如果一個類被聲明為 final的,則這個類中的所有方法也自動成為 final的。 Java EE基礎教程 31 2021年 11月 10日星期三 ?(4) final修飾引用類型變量,針對引用類型變量的final修飾符也是容易混淆的地方。實際上 final只是修飾引用變量自身的值,例如限定類變量保存的實例地址不能變。至于該變量所引用的對象,內(nèi)容是否能變,那就管不著了。所以,對于如下語句: final StringBuffer strConst = new StringBuffer(); 可以修改它指向的對象的內(nèi)容,比如: ( ); 但是不能修改它的值,比如: strConst = null; Java EE基礎教程 32 2021年 11月 10日星期三 抽象類與接口 返回 ? ?用關鍵字 abstract修飾的類稱為抽象類。同樣,用 abstract 關鍵字來修飾一個方法時,這個方法就叫做抽象方法。如: ?abstract class abstractClass{ …} // 抽象類 ? abstract returnType abstractMethod([paramlist]) //抽象方法 ? abstract類與 final類正好相反,是指不能直接被實例化的類,必須由子類創(chuàng)建對象。抽象類一般作為其它類的超類,抽象類中的抽象方法只需聲明,由繼承類提供實現(xiàn)。 ?抽象類必須被繼承,抽象方法必須被重寫。一個 abstract 類只關心它的子類是否具有某種功能,并不關心功能的具體行為,功能的具體行為由子類負責實現(xiàn)。若類中包含了抽象方法,則該類必須被定義為抽象類。如果一個類是一個 abstract類的子類,它必須具體實現(xiàn)父類的 abstract 方法。 abstract 類也可以沒有 abstract方法。下面是抽象類必須被繼承的例子。 Java EE基礎教程 33 2021年 11月 10日星期三 ? 例 57定義了一個抽象類 C ,其中聲明一個抽象方法 callme( ),再定義它的子類 D ,并重載方法 callme( )。對抽象類進行測試。 程序清單: ch05\ package ch05。 abstract class C{ abstract void callme()。 void metoo(){ (Inside C39。s metoo() method)。 } } class D extends C{ void callme(){ (Inside D39。s callme() method)。 } } Java EE基礎教程 34 2021年 11月 10日星期三 public class TestAbstract{ public static void main(String[] args){ C c = new D()。 ()。 ()。 } } Java EE基礎教程 35 2021年 11月 10日星期三 例 58 在下面的例中,有一個 abstract的“圖形”類,圖形類要求其子類都必須有具體計算面積的功能。 程序清單: ch05\ package ch05。 abstract class 圖形 { public abstract double 求面積 ()。 } class 梯形 extends 圖形 { double a,b,h。 梯形 (double a,double b,double h){ =a。=b。=h。 } public double 求面積 (){ return((1/)*(a+b)*h)。 } } Java EE基礎教程 36 2021年 11月 10日星期三 class 圓形 extends 圖形 { double r。 圓形 (double r){ =r。
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1