1 / 15

第三章 (2) Java 的接口和包 3.5 接口 (Interface) 方法定义和常量的集合。

第三章 (2) Java 的接口和包 3.5 接口 (Interface) 方法定义和常量的集合。 Java 可以创建一种称作接口 (interface) 的类,在这个类中,所有的方法都是抽象的,也就是说它们都只有说明没有定义,由实现该接口的类来提供方法的具体实现。 一个接口 , 多个方法. 3.5.1 定义接口 [public] interface 接口名 [extends 父接口名列表 ]{ [static| final] 类型 最终变量名 =value ; // 常量名 …… ; 返回类型 方法名 ([ 参数表 ]) ; // 抽象方法说明 ;

gotzon
Download Presentation

第三章 (2) Java 的接口和包 3.5 接口 (Interface) 方法定义和常量的集合。

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章(2) Java的接口和包 3.5 接口(Interface) 方法定义和常量的集合。 Java可以创建一种称作接口(interface)的类,在这个类中,所有的方法都是抽象的,也就是说它们都只有说明没有定义,由实现该接口的类来提供方法的具体实现。 一个接口,多个方法 3.5.1 定义接口 [public] interface 接口名 [extends 父接口名列表]{ [static| final] 类型 最终变量名=value; //常量名 ……; 返回类型 方法名([参数表]); //抽象方法说明; ……;}

  2. 3.5.2 实现接口 类实现接口的格式为: 修饰符 class 类名 extends 父类 implements 接口名列表 { ……} 在类体的定义中,可以使用接口中的常量,并且必须实现接口中的方法。 例子 P86 一个类可以实现多个接口,可以实现“多重继承”。 3.5.3 接口中的常量 在接口中可定义常量,作为实现该类的所有类的共享变量。

  3. 3.5.4 接口继承 当一个类实现派生接口时,必须实现所有接口与派生接口的方法。 例子 P88 接口同样可以作为类型。 当接口可以作为类型时,其行为和类作为类型完全一样。 例子14 //interfaceDemo.java interface one { double A=30.0; void add(int n); void subtract(int n); double getValue(); void setValue(int n); }

  4. class class1 implements one { double num=50.0; public void add(int n) { num +=n; } public void subtract(int n) { num -=n; } public double getValue() { return num ; }

  5. public void setValue(int n) { num=1; for (int i=1;i<=n;i++ ) { num *=i; } } } //end of class class1 class class2 implements one { double num=20; public void add(int n) { num +=(n+1)*n/2; } public void subtract(int n) { num -= (n+1)*n/2; }

  6. public double getValue() { return num ; } public void setValue(int n) { num=1; for (int i=1;i<=n;i++ ) { num *=i; } } } //end of class class2 public class interfaceDemo { public static void main(String args[]){ double i;

  7. one aObj=new class1(); i=aObj.getValue(); System.out.println( " The value in class1 is : " +i); if (i< aObj.A) { aObj.add(30); i=aObj.getValue(); System.out.println( " After call add method is : " +i); } else { aObj.subtract(30); i=aObj.getValue(); System.out.println( " After call subtract method is : " +i); }

  8. aObj=new class2(); i=aObj.getValue(); System.out.println( " The value in class2 is : " +i); if (i< aObj.A) { aObj.add(30); i=aObj.getValue(); System.out.println( " After call add method is : " +i); } else { aObj.subtract(30); i=aObj.getValue(); System.out.println( " After call subtract method is : " +i); }

  9. } } // end of class interfaceDemo 程序结果: The value in class1 is : 50.0 After call subtract method is : 20.0 The value in class2 is : 20.0 After call add method is : 485.0 实用例子: P89

  10. 3.6 包 包(package)是一组类的集合 Java本身提供了许多包,如java.io和java.lang,它们存放了一些基本类,如System和String。你可以为自己的几个相关的类创建一个包。 3.6.1 包的定义 package PackageName; 包的名称将决定它应放的不同路径 ,即目录名与包的名字完全一致.多级包具有层次结构. package pkg1[.pkg2[.pkg3]];

  11. 3.6.2 引用已定义过的包 为了使用已定义过的包,你必须使用引用命令import,你可以用以下三种方式引用包中的一个类: 1.在每一个类名前给出个包名: Shapes.Rectangle REET=new Shapes.Rectangle(10,20) 2.引用类本身: import Shapes.Reckargle; 3.引用整个包: import Shapes;

  12. 例子15 // packageDemo1.java package p1; class packageDemo1 { public int a; public void method() { System.out.println(""); } }

  13. // packageDemo2.java package p1; class packageDemo2 { public static void main(String[] args) { packageDemo1 apackageDemo1=new packageDemo1(); apackageDemo1.method(); apackageDemo1.a=10; int a=apackageDemo1.a; System.out.println("packageDemo1的公共成员变量a= "+a); } }

  14. 例子16 package test; public class packageA { public int a; public packageA (int i) { a=i; } public void myprint() { System.out.println(a); } }

  15. package test; public class packageB { public packageB () { } public static void main(String[] args) { packageA aObj=new packageA(20); aObj.myprint(); } }

More Related