> 教育经验 > 什么是类库介绍

什么是类库介绍

什么是类库介绍

类库(Class Library)是一个综合性面向对象可重用类型的集合,这些类型包括:接口、抽象类和具体类。类库可以解决一系列常见编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务),还可以解决多种专用开发任务(桌面应用程序、WEB应用程序、控制台应用程序等)。

类库定义

类库字面意思就是类的集合,类库不等于框架(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();  }  

在线教育技巧