第八章接口和包优秀课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第八章接口和包优秀课件.ppt》由会员分享,可在线阅读,更多相关《第八章接口和包优秀课件.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章接口和包第1 页,本讲稿共35 页Java 程序设计的步骤1、先定义抽象类或接口2、通过继承或实现完成(使其具体化)相应子类的定义3、将这些类编译后打包,即在类文件前加package 包名4、以后应用可直接通过import 包名.类名 引用包5、这样设计的java 程序,主函数简单明了第2 页,本讲稿共35 页抽象类和方法抽象类是专门设计为子类继承的类,抽象类通常都包括一个或多个抽象方法(只有方法说明,没有方法体),抽象方法体中内容,根据继承抽象类的子类的实际情况,有子类完成其抽象方法的代码。定义抽象类的一般形式abstract class 类名称 成员变量;方法();/定义一般方法 a
2、bstract 方法();/定义抽象方法注意无论抽象类和抽象方法都以关键字abstract 开头第3 页,本讲稿共35 页说明:(1)抽象类体中,可以包含抽象方法,也可以不包含抽象方法,但是类体中包含抽象方法的类必须定义为抽象类。(2)抽象类不能实例化,即使抽象类中没有抽象方法,也不能实例化。(3)抽象类的子类只有给出每个抽象方法的方法体,即覆盖每个抽象方法后,才能创建子类对象。如果一个抽象方法未在子类中覆盖,该子类也必须申明为抽象方法。第4 页,本讲稿共35 页抽象类的实现科技书类读者群科技人员显示图书种类计算图书价格计算打折折扣文艺书类读者群大众人员显示图书种类计算图书价格计算打折折扣教材
3、类读者群学生显示图书种类计算图书价格计算打折折扣三类图书不存在继承关系,它们虽然都具有显示图书种类、计算图书价格、计算打折折扣的功能,但具体计算办法不同,这时可以通过定义抽象类先确定它们的共同属性和要做的事(抽象方法),然后再子类中分别实现这些抽象方法。这样做的好处是简化程序设计,易排错,提高编程效率。第5 页,本讲稿共35 页abstract class Book8_1 int bookPage;/图书页码 float discount;/图书折扣 double price;/图书价格 abstract void show();/显示图书种类 abstract double getPrice
4、(int bookPage,float discount);public Book8_1(int bookpage,float discount)/构造方法 this.bookPage=bookPage;this.discount=discount;public void show_price()/显示价格 System.out.println(this books price is+price);定义抽象类:以上完成了定义抽象类,将它作为父类由子类继承第6 页,本讲稿共35 页class Science_book extends Book8_1/定义科技书类 public Science_b
5、ook(int bookPage,float discount)super(bookPage,discount);/引用父类的构造方法 public void show()/实现抽象类方法 System.out.println(this books kind is science);public double getPrice(int bookPage,float discount)return bookPage*0.1*discount;class Literrature_book extends Book8_1/定义文艺书类 public Literrature_book(int book
6、Page,float discount)super(bookPage,discount);public void show()System.out.println(this books kind is Literrature);public double getPrice(int bookPage,float discount)return bookPage*0.08*discount;第7 页,本讲稿共35 页class Teaching_book extends Book8_1/定义教材类 public Teaching_book(int bookPage,float discount)s
7、uper(bookPage,discount);public void show()System.out.println(this books kind is Teaching);public double getPrice(int bookPage,float discount)return bookPage*0.05*discount;三种图书在定义自己的构造方法时,继承了父类的构造方法,实现了显示图书种类和计算图书价格的抽象方法。下面编制科技图书类、文艺图书类和教材类对象,以及引用它们的方法。第8 页,本讲稿共35 页public class Booksell8_1 public sta
8、tic void main(String args)Science_book bb=new Science_book(530,0.7f);/创建科技书类对象 bb.price=(int)bb.getPrice(530,0.7f);/引用科技书类方法,计算图书价格 bb.show();/显示图书种类 bb.show_price();/引用父类方法,显示图书价格 Literrature_book ll=new Literrature_book(530,0.7f);/创建文艺书类对象 ll.price=(int)ll.getPrice(530,0.7f);/引用文艺书类方法,计算图书价格 ll.sh
9、ow();/显示图书种类 ll.show_price();/引用父类方法,显示图书价格 Teaching_book tt=new Teaching_book(530,0.7f);/创建教材类对象 tt.price=(int)tt.getPrice(530,0.7f);/引用教材类方法,计算图书价格 tt.show();/显示图书种类 tt.show_price();/引用父类方法,显示图书价格 第9 页,本讲稿共35 页例8-2 有多个类分别是Shape 类、Point 类、Circle 类和 Cylinder 类,他们的关系如图:程序采取先定义一个抽象类Shape,通过继承关系生成Point
10、 类,再通过继承Point 类生成Circle 类,最后通过继承Circle 类生成 Cylinder类。每一个类都是继承上一个类,而每一个类都是对它的父类的继承和扩充。并且实现了抽象类中定义的抽象方法多继承的实现 本程序有Shape8_2java、Point8_2.java、Circle8_2.java、Cylinder8_2.java 四个配套文件,它们不需要进行单独编译抽象类只给出方案,由继承它的子类去实现定义的抽象方法 第10 页,本讲稿共35 页/多继承的实现 Show8_2.java 配套文件 1/抽象类只给出方案,由继承它的子类去实现定义的抽象方法 public abstract
11、 class Shape8_2 public double area()return 0.0;public double volume()return 0.0;public abstract String getName();/多继承的实现 Show8_2.java 配套文件 2/抽象类只给出方案,由继承它的子类去实现定义的抽象方法 public class Point8_2 extends Shape8_2 protected int x,y;/coordinates of the Point public Point8_2(int a,int b)setPoint(a,b);public
12、void setPoint(int a,int b)x=a;y=b;public int getX()return x;public int getY()return y;public String toString()return+x+,+y+;public String getName()return Point;第1 1 页,本讲稿共35 页/多继承的实现 Show8_2 配套文件 3/抽象类只给出方案,由继承它的子类去实现定义的抽象方法 public class Circle8_2 extends Point8_2 protected double radius;public Circ
13、le8_2(double r,int a,int b)super(a,b);setRadius(r);public void setRadius(double r)radius=(r0?r:0);public double getRadius()return radius;public double area()return Math.PI*radius*radius;public String toString()return Center=+super.toString()+Radius=+radius;public String getName()return Circle;第12 页,
14、本讲稿共35 页/多继承的实现 Show8_2.java 配套文件 4/抽象类只给出方案,由继承它的子类去实现定义的抽象方法 public class Cylinder8_2 extends Circle8_2 protected double height;public Cylinder8_2(double h,double r,int a,int b)super(r,a,b);setHeight(h);public void setHeight(double h)height=(h0?h:0);public double getHeight()return height;public do
15、uble area()return 2*super.area()+2*Math.PI*radius*height;public double volume()return super.area()*height;public String toString()return super.toString()+Height=+height;public String getName()return Cylinder;第13 页,本讲稿共35 页import javax.swing.JOptionPane;public class Show8_2 public static void main(St
16、ring args)Point8_2 point=new Point8_2(7,11);/创建Point 对象并引用Point 类带参数的构造方法 Circle8_2 circle=new Circle8_2(3.5,22,8);Cylinder8_2 cylinder=new Cylinder8_2(10,3.3,10,10);Shape8_2 arrayOfShapes=new Shape8_23;arrayOfShapes0=point;arrayOfShapes1=circle;arrayOfShapes2=cylinder;String output=point.getName()+
17、:+point.toString()+n+circle.getName()+:+circle.toString()+n+cylinder.getName()+:+cylinder.toString();JOptionPane.showMessageDialog(null,output,Demonstring Polymorphism,JOptionPane.INFORMATION_MESSAGE);/屏幕上输出结果 System.exit(0);第14 页,本讲稿共35 页多继承接 口 接口是用来实现类间多重继承的结构模式。接口类似于抽象类和抽象方法,它只提供一些方法模板,自己不去实现而由其他
18、类去实现。接口的关键字为 interface第15 页,本讲稿共35 页定义接口接口是一种特殊的类,它由两部分组成:接口说明和接口体。一般形式为:访问权限 interface 接口名 extends 父接口名1,父接口名n./接口体程序接口体中只允许有常量和抽象方法,接口的访问权限只有两种,public 和缺省状态。使用public 修饰的接口可以被所有的类和接口使用,而缺省状态只能被同一包中的其他接口和l 类使用接口类的实现class 类名 implements 接口名1,接口名2,第16 页,本讲稿共35 页接口的特点1、接口可以定义多继承2、接口允许没有父接口,即接口不存在最高层,类有最
19、高层Object3、接口中的方法只能被声明为public 和abstract,如果不声明。则默认为public abstract;接口中的成员变量只能用public、static 和final 定义,如果不声明则默认为 public static final。4、接口中的方法都是使用abstract 修饰的方法,在接口中指给出方法名、返回值和参数表。而不能定义方法体。5、抽象类的方法在实现时都要设定为public 属性,否则会产生访问权限错误6、接口不是类,接口中不能定义构造方法第17 页,本讲稿共35 页/通过接口定义多继承,接口中只给出方法名、返回值和参数表 例8_3/不能定义方法体 in
20、terface Book8_3/定义Book 接口 abstract void show();/定义抽象方法,显示图书种类 abstract double getPrice(int bookPage,float discount);class Science_book implements Book8_3/定义科技书类 int bookPage;float discount;double price;public Science_book(int bookPage,float discount)this.bookPage=bookPage;this.discount=discount;publ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 接口 优秀 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内