JAVA大学教学课件第六章对象和接口.ppt

上传人:本田雅阁 文档编号:2145433 上传时间:2019-02-21 格式:PPT 页数:23 大小:262.01KB
返回 下载 相关 举报
JAVA大学教学课件第六章对象和接口.ppt_第1页
第1页 / 共23页
JAVA大学教学课件第六章对象和接口.ppt_第2页
第2页 / 共23页
JAVA大学教学课件第六章对象和接口.ppt_第3页
第3页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《JAVA大学教学课件第六章对象和接口.ppt》由会员分享,可在线阅读,更多相关《JAVA大学教学课件第六章对象和接口.ppt(23页珍藏版)》请在三一文库上搜索。

1、主讲教师: xxx,Java语言程序设计, Java语言程序设计,第六章:类、对象和接口,6.1 什么类-1,面向对象程序(OOP)语句能使现实世界中的概念,在计算机程序中变成模块。它包括整个程序、程序的模块及数据和算法。 OOP语言有三个特征:封装性、继承性及多态性。所有这些特征与类的概念是息息相关的。 类封装了一类对象的状态和方法。类是定义对象的模板。 类的声明: class People ,6.1 什么类-2,6.1 什么类-3,类的声明与定义:,6.1 什么类-4,类的声明与定义: public :这个public关键字声明了类可以在其它任何的类中使用。 abstract :声明的类不

2、能被实例化。 final:声明的类不能被继承,即不能有子类。 class NameOfClass :关键字class指示编译器类的声明以及类的名字是NameOfClass。 extends Super :这个extends 子句认为Super是类的父类。 implements Interfaces :为了声明类可执行一个或多个接口,可以使用关键字implements并且在其后面给出由类执行的接口名字的列表,它们是以逗号分隔的。,6.1 什么类-5,成员变量和局部变量: (1)成员变量和局部变量的类型可以是任何一种数据类型。 (2)成员变量在整个类内有效,局部变量只在定义它的方法内有效。 cla

3、ss Aint x; int f()int a; a = x; int g()int y; y=a; (3)成员变量又分为实例成员变量和类成员变量。 class dogfloat x; static int y; (4)变量的名字与成员变量的名字相同,成员变量被隐藏。 class Tomint x=98,y; void f()int x=3; y=x; (5)上面情况中要在该方法内使用成员变量,使用this; class Jerry float x,y,x; void g(float z) float x=1;y=23; this.x=x; this.y=y;this.z=z;,6.1 什么类

4、-6,方法: (1)方法的重载。 class Tom float jerry(float s)return s float jerry(float x,int y)return x*x+y*y; (2)构造方法。 class Pointint x,y; Pointx=67; y=100; (3)类方法和实例方法。 class Aint a=23; float max(float x,float y); static float jerry() ,6.1 什么类-7,= 和 equals()的区别 传值和传引用 内部类 匿名类,6.2 什么对象-1,创建对象: (1)对象的声明。 Point p

5、1; (2)为声明的对象分配内存空间。 p1=new Point(); (3)p1是引用,使用new之前,并未对象分配空间。,0x1234,12,24,p1,x,y,6.2 什么对象-2,类中的访问权限:,6.3 类的继承-1,创建子类: 格式如下:class Students extends People。 (1)子类自然继承父类中不是private的成员。如果一个类没有使用extends关键字,系统默认是Object的子类。Object 是包java.lang中的类。 (2)成员变量的隐藏和方法的重写。 class Chengjifloat f(float x,float y)return

6、 x*y; class Xiangjia extends Chengji float f(float x,float y)return x+y ; public class Test public static void main(String args) Xiangjia sum; sum=new Xiangjia(); sum.f(4,6);,6.3 类的继承-2,(3)运行时的多态性。 class Shape float area()return 0.0; class Circle extends Shape float r; float area()return 3.14*r*r; c

7、lass Rect extends Shape float x,y; float area()return x*y; public class Test public static void main(String args) Shape s; s=new Circle(); s.area();,6.3 类的继承-3,(4)final类和final方法。final类不能被继承,final方法不能被修改。 final class A class B extends A (5)abstract 类和abstract方法。 abstract 类不能创建对象,必须产生子类,由子类创建对象。 abstr

8、act方法,只允许声明,不允许实现。 abstract 类可以没有abstract方法;但一个类如果有abstract方法,这个类必须用abstract修饰。 (6)使用super关键字。在子类中想使用被子类隐藏的父类的成员需利用super关键字。,6.3 类的继承-4,public class Employee private String name; private int salary; public String getDetails() return Name: “ + name + “nSalary: “ + salary; public class Manager extends

9、 Employee private String department; public String getDetails() return super.getDetails() + / call parents / method “nDepartment: “ + department; ,6.3 类的继承-5,(7)instanceof 运算符 : public class Employee extends Object public class Manager extends Employee public class Contractor extends Employee public

10、 void method(Employee e) if (e instanceof Manager) / Get benefits and options along with salary else if (e instanceof Contractor) / Get hourly rates else / temporary employee ,6.4 接口-1,Java不支持多重继承,一个子类只能有一个父类。Java使用接口来实现多个接口。 接口的定义与声明: interface Printable final int MAX =100;void add(); float sum(flo

11、at x,float y); 接口的使用: class A impelents Printable ,Addable。 接口中的方法默认是public的,所以类在实现接口方法时,一定用public来修饰。,6.4 接口-2,import java.awt.*; import java.applet.*; import java.awt.event.*; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class s extends Applet implements MouseListe

12、ner Image img1,img2; AudioClip clip; boolean tag; public void init() img1=getImage(getCodeBase(),“ys.jpg“); img2=getImage(getCodeBase(),“ws.jpg“); clip=getAudioClip(getCodeBase(),“bg.au“); tag=true; addMouseListener(this); ,6.4 接口-3,public void paint(Graphics g) if (tag)g.drawImage(img1,0,0,this); c

13、lip.loop(); else g.drawImage(img2,0,0,this); clip.stop(); public void mouseClicked(MouseEvent parm1) / TODO: Add your code here tag= !tag; repaint(); public void destroy() if (clip!=null) clip.stop(); clip=null; public void mousePressed(MouseEvent parm1) public void mouseReleased(MouseEvent parm1) p

14、ublic void mouseEntered(MouseEvent parm1) / TODO: Add your code here public void mouseExited(MouseEvent parm1) / TODO: Add your code here ,6.5 包-1,1、包声明必须在源程序文件的开始被声明 2、一个源程序文件,只允许有一个包声明 / Class Employee of the Finance department for / the ABC company package abc.financedept; public class Employee .

15、 3、包名称是分层的,由圆点隔开 。包名都用小写字母表示。 4、通过包命名机制,可以确保类名的唯一性。 cn . com . sina 5、如果源程序省略了包名,则源文件中定义的类默认为无名包的一部分。,6.5 包-2,6、如果程序使用了包 package tom . jiafei ; class People 那么你的目录结构必须为 tomjiafei; 比如:c:projecttomjiafei,且你的classpath中含有 c:project 编译时使用: javac tom.jiafei.People; 7、import语句 为使用Java提供的类,使用import语句来引入所需的类 import java.awt.*; import java.util.Date;,6.5 包-3,8、常用JavaAPI包: java.applet java.awt java.awt.event jave.lang java.io java.util,6.6 说明-1,类中的访问权限:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1