接口(interface)就是方法定义和常量值的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有方法的实现。

通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。

通过接口可以指明多个类需要实现的方法。

通过接口可以了解对象的交互界面,而不需了解对象所对应的类。

接口的定义:

[public] interface interfaceName [extends SuperInterfaceList] 
   
{ 
   
       ……      //常量定义和方法定义 
   
}

接口(interface)作为特殊形式的抽象类,和类(class)在使用上具有类似的约束。

与类继承不同,一个接口可以继承多个父接口

一个public接口只能定义在同名的.java文件中

implements子句来表示一个类使用某个接口。

在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。

利用接口可实现多重 继承,即一个类可以实现多个接口,在implements子句中用逗号分隔。

接口的作用和抽象类相似,只定义原型,不直接定义方法的内容。

接口中的方法和变量必须是public的。

interface Collection 
   
{ 
   
       int MAX_NUM=100; 
   
       void add (Object obj); 
   
       void delete (Object obj); 
   
       Object find (Object obj); 
   
       int currentCount ( ); 
   
} 
   
class FIFOQueue implements Collection 
   
{ 
   
       void add ( Object obj ) 
   
       { 
   
              …… 
   
       } 
   
       void delete( Object obj ) 
   
       { 
   
              …… 
   
       } 
   
       Object find( Object obj ) 
   
       { 
   
              …… 
   
       } 
   
       int currentCount() 
   
       { 
   
              …… 
   
       } 
   
} 
   
打包

Java中用package语句来将一个Java源文件中的类打成一个包。package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。它的格式为:

package pkg1[.pkg2[.pkg3…]];

Java编译器把包对应于文件系统的目录管理,package语句中,用 . 来指明目录的层次。

package myclass.graphics;

class Square {…;}

class Circle {…;}

class Triangle {…;}

package myclass.graphics; 这条语句指定这个包中的文件存储在目录 path/myclass/graphics 下。

包层次的根目录path是由环境变量CLASSPATH来确定的。

为了能使用Java中已提供的类,我们需要用import语句来引入所需要的类。

import package1[.package2…].(classname |*);

例如:

import   myclass.graphics.*; 
  
import   java.io.*;

构造方法(Constructor)是一种特殊的方法。Java中的每个类都有构造方法,用来初始化该类的一个新的对象。构造方法具有和类名相同的名称,而且不返回任何数据类型。系统在产生对象时会自动执行。

     构造方法应包含的内容:

定义一些初值或内存配置工作;

 一个类可以有多个构造方法(重载),根据参数的不同决定执行哪一个;

 如果程序中没有定义构造方法,则创建实例时使用的是缺省构造方法,它是一个无内容的空方法。

public class Employee{ 
  
      private String name; 
  
      private int salary; 
  
      public Employee(String n,int s) 
  
      { 
  
       name = n; 
  
       salary = s; 
  
      } 
  
      public Employee(String n){ 
  
       this(n,0); 
  
       } 
  
       public Employee() 
  
      { 
  
       this(“Unknown”); 
  
      } 
  
} 
  
this 
   
this指向自己的引用,它的一个主要作用是要将自己这个对象当作参数,传送给别的对象中的方法。 
  
class ThisClass 
   
{ 
   
    public static void main() 
   
    { 
   
         Bank bank=new Bank(); 
   
         bank.someMethod(this); 
   
     } 
   
} 
  
class Circle 
   
{ 
   
    int  r; 
   
    Circle(int r) 
   
    { 
   
        this.r=r; 
   
    } 
   
    public  area() 
   
    { 
   
        return r*r*3.14; 
   
    } 
   
} 
   
super 
   
super指这个对象的父类。super可以用来引用父类中的(被覆盖的)方法、(被隐藏的)变量及构造方法。 
  
public  class apple extends fruits 
  
{ 
  
    public apple(int price) 
  
    { 
  
        super(price); 
  
        super.var = value; 
  
        super.method(paraList); 
  
    } 
  
} 
  
以上程序表示使用父类的构造方法生成实例,super必须是子类构造方法的第一条语句。 
  
Finalize方法 
   
在对对象进行垃圾收集前,Java运行时系统会自动调用对象的finalize() 方法来释放系统资源。该方法必须按如下方式声明: 
  
protected void finalize() throws throwable 
  
{……} 
  
finalize()方法是在java.lang.Object中实现的,在用户自定义的类中,它可以被覆盖,但一般在最后要调用父类的finalize()方法来清除对象所使用的所有资源。 
  
protected void finalize() throws throwable 
  
{ 
  
    ……  //释放本类中使用的资源 
  
    super.finalize(); 
  
}