类库(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)