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

上传人:大米 文档编号:585992539 上传时间:2024-09-03 格式:PPT 页数:23 大小:262.03KB
返回 下载 相关 举报
JAVA大学教学课件第六章对象和接口_第1页
第1页 / 共23页
JAVA大学教学课件第六章对象和接口_第2页
第2页 / 共23页
JAVA大学教学课件第六章对象和接口_第3页
第3页 / 共23页
JAVA大学教学课件第六章对象和接口_第4页
第4页 / 共23页
JAVA大学教学课件第六章对象和接口_第5页
第5页 / 共23页
点击查看更多>>
资源描述

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

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

2、类中使用。关键字声明了类可以在其它任何的类中使用。abstract:声明的类不能被实例化。声明的类不能被实例化。final:声明的类不能被继承,即不能有子类。声明的类不能被继承,即不能有子类。classNameOfClass:关键字关键字class指示编译器类的声明以及类的指示编译器类的声明以及类的名字是名字是NameOfClass。extendsSuper:这个这个extends子句认为子句认为Super是类的父类。是类的父类。implementsInterfaces:为了声明类可执行一个或多个接口,可为了声明类可执行一个或多个接口,可以使用关键字以使用关键字implements并且在其后面

3、给出由类执行的接口名并且在其后面给出由类执行的接口名字的列表,它们是以逗号分隔的。字的列表,它们是以逗号分隔的。6.1什么类什么类-5成员变量和局部变量成员变量和局部变量:(1)成员变量和局部变量的类型可以是任何一种数据类型。成员变量和局部变量的类型可以是任何一种数据类型。(2)成员变量在整个类内有效,局部变量只在定义它的方法内)成员变量在整个类内有效,局部变量只在定义它的方法内有效。有效。classAintx;intf()inta;a=x;intg()inty;y=a;(3)成员变量又分为实例成员变量和类成员变量。)成员变量又分为实例成员变量和类成员变量。classdogfloatx;sta

4、ticinty;(4)变量的名字与成员变量的名字相同,成员变量被隐藏。变量的名字与成员变量的名字相同,成员变量被隐藏。classTomintx=98,y;voidf()intx=3;y=x;(5)上面情况中要在该方法内使用成员变量,使用)上面情况中要在该方法内使用成员变量,使用this;classJerryfloatx,y,x;voidg(floatz)floatx=1;y=23;this.x=x;this.y=y;this.z=z;6.1什么类什么类-6方法方法:(1)方法的重载。方法的重载。classTomfloatjerry(floats)returnsfloatjerry(floatx

5、,inty)returnx*x+y*y;(2)构造方法。)构造方法。classPointintx,y;Pointx=67;y=100;(3)类方法和实例方法。)类方法和实例方法。classAinta=23;floatmax(floatx,floaty);staticfloatjerry()6.1什么类什么类-7=和和equals()的区别的区别传值和传引用传值和传引用内部类内部类匿名类匿名类6.2什么对象什么对象-1创建对象创建对象:(1)对象的声明。对象的声明。Pointp1;(2)为声明的对象分配内存空间。)为声明的对象分配内存空间。p1=newPoint();(3)p1是引用是引用,使用

6、使用new之前之前,并未对象分配空间。并未对象分配空间。0x12341224p1xy6.2什么对象什么对象-2类中的访问权限类中的访问权限:访问指示访问指示类类子类子类包包所有所有PrivateXProtectedXXXPublicXXXXPackageXX6.3类的继承类的继承-1创建子类创建子类:格式如下:格式如下:classStudentsextendsPeople。(1)子类自然继承父类中不是子类自然继承父类中不是private的成员。如果一个类没有的成员。如果一个类没有使用使用extends关键字,系统默认是关键字,系统默认是Object的子类。的子类。Object是包是包java.

7、lang中的类。中的类。(2)成员变量的隐藏和方法的重写。)成员变量的隐藏和方法的重写。classChengjifloatf(floatx,floaty)returnx*y;classXiangjiaextendsChengjifloatf(floatx,floaty)returnx+y;publicclassTestpublicstaticvoidmain(Stringargs)Xiangjiasum;sum=newXiangjia();sum.f(4,6);6.3类的继承类的继承-2(3)运行时的多态性。运行时的多态性。classShapefloatarea()return0.0;clas

8、sCircleextendsShapefloatr;floatarea()return3.14*r*r;classRectextendsShapefloatx,y;floatarea()returnx*y;publicclassTestpublicstaticvoidmain(Stringargs)Shapes;s=newCircle();s.area();6.3类的继承类的继承-3(4)final类和类和final方法。方法。final类不能被继承,类不能被继承,final方法不能被方法不能被修改。修改。finalclassAclassBextendsA(5)abstract类和类和abst

9、ract方法。方法。abstract类不能创建对象,必类不能创建对象,必须产生子类,由子类创建对象。须产生子类,由子类创建对象。abstract方法,只允许声明,不方法,只允许声明,不允许实现。允许实现。abstract类可以没有类可以没有abstract方法;但一个类如果有方法;但一个类如果有abstract方法,这个类必须用方法,这个类必须用abstract修饰。修饰。(6)使用使用super关键字。在子类中想使用被子类隐藏的父类的成关键字。在子类中想使用被子类隐藏的父类的成员需利用员需利用super关键字。关键字。6.3类的继承类的继承-4publicclassEmployeepriva

10、teStringname;privateintsalary;publicStringgetDetails()returnName:+name+nSalary:+salary;publicclassManagerextendsEmployeeprivateStringdepartment;publicStringgetDetails()returnsuper.getDetails()+/callparents/methodnDepartment:+department;6.3类的继承类的继承-5(7)instanceof运算符运算符:publicclassEmployeeextendsObjec

11、tpublicclassManagerextendsEmployeepublicclassContractorextendsEmployeepublicvoidmethod(Employeee)if(einstanceofManager)/Getbenefitsandoptionsalongwithsalaryelseif(einstanceofContractor)/Gethourlyrateselse/temporaryemployee6.4接口接口-1Java不支持多重继承,一个子类只能有一个父类。不支持多重继承,一个子类只能有一个父类。Java使用接口来实现多使用接口来实现多个接口。个

12、接口。接口的定义与声明:接口的定义与声明:interfacePrintablefinalintMAX=100;voidadd();();floatsum(floatx,floaty););接口的使用:接口的使用:classAimpelentsPrintable,Addable。接口中的方法默认是接口中的方法默认是public的,所以类在实现接口方法时,一定用的,所以类在实现接口方法时,一定用public来来修饰。修饰。6.4接口接口-2importjava.awt.*;importjava.applet.*;importjava.awt.event.*;importjava.awt.event

13、.MouseListener;importjava.awt.event.MouseEvent;publicclasssextendsAppletimplementsMouseListenerImageimg1,img2;AudioClipclip;booleantag;publicvoidinit()img1=getImage(getCodeBase(),ys.jpg);img2=getImage(getCodeBase(),ws.jpg);clip=getAudioClip(getCodeBase(),bg.au);tag=true;addMouseListener(this); 6.4接口

14、接口-3publicvoidpaint(Graphicsg)if(tag)g.drawImage(img1,0,0,this);clip.loop();else g.drawImage(img2,0,0,this);clip.stop();publicvoidmouseClicked(MouseEventparm1)/TODO:Addyourcodeheretag=!tag;repaint();publicvoiddestroy()if(clip!=null)clip.stop();clip=null;publicvoidmousePressed(MouseEventparm1)publicv

15、oidmouseReleased(MouseEventparm1)publicvoidmouseEntered(MouseEventparm1)/TODO:AddyourcodeherepublicvoidmouseExited(MouseEventparm1)/TODO:Addyourcodehere6.5包包-11、包声明必须在源程序文件的开始被声明、包声明必须在源程序文件的开始被声明2、一个源程序文件,只允许有一个包声明、一个源程序文件,只允许有一个包声明/ClassEmployeeoftheFinancedepartmentfor/theABCcompanypackageabc.fin

16、ancedept;publicclassEmployee.3、包名称是分层的,由圆点隔开、包名称是分层的,由圆点隔开。包名都用小写字母表示。包名都用小写字母表示。4、通过包命名机制,可以确保类名的唯一性。、通过包命名机制,可以确保类名的唯一性。.sina5、如果源程序省略了包名,则源文件中定义的类默认为无名包的、如果源程序省略了包名,则源文件中定义的类默认为无名包的一部分。一部分。6.5包包-26、如果程序使用了包、如果程序使用了包packagetom.jiafei;classPeople那么你的目录结构必须为那么你的目录结构必须为.tomjiafei;比如比如:c:projecttomjiafei,且你的且你的classpath中含有中含有c:project编译时使用编译时使用:javactom.jiafei.People;7、import语句语句为使用为使用Java提供的类提供的类,使用使用import语句来引入所需的类语句来引入所需的类importjava.awt.*;importjava.util.Date;6.5包包-38、常用、常用JavaAPI包包:java.util6.6说明说明-1访问指示访问指示类类子类子类包包所有所有privateXprotectedXXXpublicXXXXpackage(缺省缺省)XX类中的访问权限类中的访问权限:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号