Java編程詳細教程-7-高級類特性(下)課件_第1頁
Java編程詳細教程-7-高級類特性(下)課件_第2頁
Java編程詳細教程-7-高級類特性(下)課件_第3頁
Java編程詳細教程-7-高級類特性(下)課件_第4頁
Java編程詳細教程-7-高級類特性(下)課件_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、高級類特性(下)單擊此處編輯副標題樣式目標掌握instanceof運算符以及對象的造型掌握如何定義內部類精通各種修飾符的適用范圍instanceof運算符使用運算符instanceof可以得到對象的類型例:public class Personpublic class Teacher extends Personpublic class Testpublic static void main(String args)Person p;if(p instanceof Teacher) Teacher t=(Teacher)p;對象造型(Casting)所謂造型就是Java對象間的類型轉換Java

2、的對象造型可以分為兩種情況:自動造型強制造型在造型前可以使用instanceof運算符測試一個對象的類型對象的造型只用在有繼承關系的對象之間內部類(inner class)允許一個類的定義出現(xiàn)在另一個類中,將處于另一個類中的“寄生類”稱為“內部類”(inner class),也稱為“類屬類”這樣的一組類在邏輯上是一個整體,內部類和外層封裝它的類之間存在邏輯上的從屬關系內部類對其封裝類的內部成員有訪問權限內部類示例public class Outer1 private int size; /* 定義一個內部類,名為 Inner */ public class Inner public void

3、doStuff() / 內部類可以訪問外部類的私有屬性 size+; public void testTheInner() Inner i = new Inner(); i.doStuff(); 實例化內部類實例化內部類的兩種方法:-法一:Outer.Inner in=new Outer().new Inner();-法二:Outer o=new Outer();Outer.Inner I=o.new Inner();如果內部類是static的,也可以用下面方法:Outer.Inner in=new Outer.Inner();內部類特性(1)類的名字只能在定義的范圍內使用,除非使用有效的全名

4、Inner類也可以定義在方法的內部。方法中final類型的局部變量,都可以被Inner類的方法訪問。內部類特性(2)Inner class可以聲明為抽象類 ,因此可以被其它的內部類繼承。也可以聲明為final的。和外層類不同,Inner class可以聲明為private或protected;Inner class 可以聲明為static的,但此時就不能再使用外層封裝類的非static的成員變量;非static的內部類中的成員不能聲明為static的,只有在頂層類或static的內部類中才可聲明static成員內部類中訪問封裝類的對象可以使用“封裝類(封裝類)的類名.this”來訪問封裝類(外

5、部類)的對象:oc.method(Outer.this);注意,如果在內部類中使用this,此時它表示的是內部類的對象,而不是外部類對象匿名內部類匿名內部類就是沒有名字的內部類一個匿名內部類一定是在new的后面,用其隱含實現(xiàn)一個接口或實現(xiàn)一個類。 因匿名內部類為局部內部類,所以局部內部類的所有限制都對其生效。在以下情況中,可以考慮使用匿名內部類:只用到類的一個實例。 類在定義后馬上用到。 類非常小給類命名并不會導致你的代碼更容易被理解。 匿名內部類的使用原則使用匿名內部類時的幾個原則: 匿名內部類不能有構造方法。 匿名內部類不能定義任何靜態(tài)成員、方法和類。 匿名內部類不能是public,pro

6、tected,private,static。 只能創(chuàng)建匿名內部類的一個實例。匿名內部類例子public interface InterfaceApublic void doSomething();-public class ClassApublic void methodA(InterfaceA ia)ia.doSomething();public class MainClasspublic static void main(String args) ClassA ca = new ClassA(); ca.methodA( new InterfaceA()public void doSomething() System.out.println(實現(xiàn)接口InterfaceA中的doSomething方法); );修飾符適用范圍class屬性方法構造器自由塊內部類publicYYYYYprotected YYYY(Default)YYYYYYprivateYYYYfinalYY

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論