Java基本上是面向对象的程序设计语言, 除了一些简单类型(primitive)的变量以外,一切都是对象, 程序是对象的组合, 每个对象都有自己的空间, 并且每个对象都有一种类型, 同一类所有对象都能接受相同的消息。 下面只对Java中对象的结构作简单的说明:
Ø 类(class): class是定义类的关键字, 类中包含类变量, 方法, 内部类, 内部接口等。由class可以生成类的实例, 即一个个对象。 如果一个类的成员被定义成static的,则这个成员不专属于任何对象, 而是属于这个类, 所有的对象共享这个成员。
Ø 抽象类(abstract class): 抽象类不能直接生成一个实例, 抽象类中必需有方法是abstract的,抽象类的意思就是它实现了一部分的方法, 而定义为abstract的方法则需要在它的字类中去实现。
Ø 接口(interface): 接口可以理解为纯抽象的类, 它的每个方法都是未实现的, 它可以有成员变量, 但必须是static的。 一个类如果从这个接口继承(implements)则它必须实现这个接口的所有方法。
继承类用关键字:extends,继承接口用关键字:implements。 一个类只能从一个类继承下来, 但可以从多个接口继承(类似于C++的多重继承)。 字类可以覆盖父类的方法(method), 但不能覆盖父类的成员变量(field)。 如果父类的方法为final或static的则不能被覆盖。类的初始化顺序是, 如果有父类, 则先初始化父类的field,然后执行父类的构造函数, 如果子类没有显式的去调父类的构造函数则缺省的会去调父类的无参数构造函数。 然后是子类的field与构造函数的初始化。
public interface SuperInterface {
public staitc String SOME_FLAG = “1”;
public void someMethod();
}
public Class SuperClass {
{ System.out.println(“init SuperClass field”);}
public SuperClass() {System.out.println(“init SuperClass Constructor”); }
public void runMethod() { System.out.println(“run SuperClass runMethod()”); }
}
public Class SubClass extends SuperClass implements SuperInterface {
{ System.out.println(“init SubClass field”); }
public SubClass() {System.out.println(“init SubClass Constructor”); }
public void someMethod() {System.out.println(“run SubClass someMethod()”); }
public void runMethod() {System.out.println(“run SubClass runMethod()”); }
}
有以下test代码:
public class Test {
public void main(String[] args) {
SubClass sub = new SubClass();
sub. runMethod();
}
}
则会输出:
init SuperClass field
init SuperClass Constructor
init SubClass field
init SubClass Constructor
run SubClass runMethod()
以下章节所讲述到的常用的Java API就是一些Java自带的一些Class或Interface的用法。