複製鏈接
請複製以下鏈接發送給好友

類庫

鎖定
類庫(Class Library)是一個綜合性面向對象可重用類型的集合,這些類型包括:接口抽象類和具體。類庫可以解決一系列常見編程任務(包括諸如字符串管理、數據收集、數據庫連接以及文件訪問等任務),還可以解決多種專用開發任務(桌面應用程序WEB應用程序控制枱應用程序等)。
中文名
類庫
外文名
Class Library
所屬學科
計算機科學
包    括
接口、抽象類和具體類
專    用
開發任務

目錄

類庫定義

類庫字面意思就是類的集合,類庫不等於框架(Framework),Framework 是比類庫更高一級的概念。
類庫(Class Library)是一個綜合性面向對象可重用類型的集合,這些類型包括:接口抽象類和具體

類庫特點

類庫抽象類

在面向對象的概念中,所有的對象都是通過類來描繪的,但是反過來,並不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。父類包含了子類集合的常見的方法,但是由於父類本身是抽象的,所以不能使用這些方法。
在Java中抽象類表示的是一種繼承關係,一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。
抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變量、成員方法和構造方法的訪問方式和普通類一樣。
由於抽象類不能實例化對象,所以抽象類必須被繼承,才能被使用;但是抽象類可以派生子類。抽象類的子類必須給出抽象類中的抽象方法的具體實現,除非該子類也是抽象類。也是因為這個原因,通常在設計階段決定要不要設計抽象類。
抽象類可能含有抽象方法,也可能沒有,但抽象類中可以含有非抽象的方法。如果一個類含有抽象方法,那麼這個類必須被聲明為抽象類abstract
(2)抽象類的格式:
abstract class 抽象類名{ }
(3)抽象方法:
如果某個方法被聲明,但是沒有被實現(即沒有花括號、方法體,聲明後面直接就是分號),那麼該方法被稱為“抽象方法”。
抽象類的子類必須給出抽象類中的抽象方法的具體實現,除非該子類也是抽象類。
例如:abstract void abstractMethod( );
抽象類中不一定包含抽象方法,但是有抽象方法的類必定是抽象類。抽象類中的抽象方法只是聲明,不包含方法體,就是不給出方法的具體實現,也就是方法的具體功能。
構造方法,類方法(用 static 修飾的方法)不能聲明為抽象方法。
修飾符static和abstract不能一起使用。如果某個方法聲明為抽象的,就不能聲明為靜態的。如果某個方法聲明為靜態的,就不能聲明為抽象的。

類庫嵌套類

在一個Java類體中定義另一個類叫作嵌套類。擁有嵌套類的類叫外圍類或者外部類。
class OuterClass{
class NestedClass{ }
}
嵌套類分為靜態嵌套類和動態嵌套類。用static修飾的嵌套類叫做“靜態嵌套類”,沒有用static修飾的嵌套類叫做“非靜態嵌套類”,也叫做內部類。
(1)靜態嵌套類:
如果要為靜態嵌套類創建對象,則使用以下語法:
OuterClass.StaticNestedClass nestedObject =newOuterClass.StaticNestedClass( );
使用靜態嵌套類對象來訪問外部類的實例變量和實例方法。例如:OuterClass.StaticNestedClass
(2)非靜態嵌套類(內部類)
內部類不能定義任何靜態成員,內部類的實例化對象存在於外部類的實例化對象中。要實例化一個內部類,必須先實例化其外部類。
OuterClass.InnerClass innerObject =newOuterClass.InnerClass( );
它又可以分為以下三種:成員內部類(Member inner class)、匿名內部類(Anonymous inner class)、局部內部類(Local inner class)
public class AnonymousInner {
     public static void main(String[] args){
            // 使用匿名內部類實例化抽象類Person
            Person p = new Person() {  
                void create() {System.out.println(str);}  
            };
            p.create();
            
            Animal a = new Animal() {  
                public void run(){System.out.println("匿名內部類通過接口創建對象");}  
            };  
            a.run();
        }  
    }  
abstract class Person { 
    String str = "匿名內部類通過抽象類創建對象";
    abstract void create();  
}  
interface Animal{  
    void run();  
}