欢迎来到天天文库
浏览记录
ID:51578487
大小:381.50 KB
页数:52页
时间:2020-03-24
《Java课件第六讲Java面向对象程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6讲Java面向对象程序设计面向对象的程序设计方法按照现实世界的特点,把复杂的事务抽象为对象。对象具有自己的状态和行为,通过对消息的反应来完成一定的任务。面向对象是Java的重要特性。一、Java面向对象基础(一)类的定义Java的类是由类声明和类体二部分构成,类声明定义的格式如下:[类修饰符]class类名[extends父类名][implements接口名,[接口名]]{类体}例:HelloWorldApp.javapublicclassHelloWorldApp{publicstaticvoidmain(Stringargs[]){System.out.pri
2、ntln(“HelloWorld!”);}}类体定义的格式:class类名{变量声明;方法声明;}例:classPoint{intx,y;voidinit(intix,intiy){x=ix;y=iy;}}例:publicclassCalculator{privatedoubleresult;publicdoublea,b;publicdoubleCalculator(){result=0;}publicdoubleAdd(){result=a+b;returnresult;}publicdoubleMinus(){result=a-b;returnresult;}}
3、组成一个类的组件如下:[import包][类修饰符]classxxxclass[extends父类][implements接口]{//类变量或称类字段//实例变量或称实例字段//构造函数//静态初始者//类方法//实例方法//内部类}(二)类的修饰符public——提供给其他类完全的存取权限。即:在同一包中的类可自由取用此类,而别的包中的类可通过import关键词来引入此类所属的包加以运用。用public修饰的类有几个特性:1.一个程序里只能有一个类被修饰为public,否则编译会错。publicclassxxxClass(){…}classaaaClass(){…}
4、classbbbClass(){…}2.源文件存储文件名,必须是用public修饰的类名(xxxClass)3.若程序中没有任何public类,则文件名可任取。而如果文件名是程序中的一个类名,则该类被视作public,可供别的类存取。final——表示此类为“最终”类,别的类不能继承此类,其方法也不能被覆盖。例如java.lang.System类即为final类:publicfinalclassSystemextendsObject注意:我们可使用该类,但不能继承并覆盖其内容。用重复的两个修饰符public+final的意思是:此final类可被import来引用,但
5、不能被继承。System类关系到系统层级控制,为了安全性,故必须为final类,以避免被覆盖。但final与abstract就不能复合来用,因为二者是相冲突的。另外:final关键字也可用于修饰方法和变量,用final修饰的方法不能被覆盖,用final修饰的变量定义的同时必须赋初值且在程序中不能被赋值,final变量被认为是符号常量,习惯上用大写字母表示这些变量。例:FinalTest.javafinalclassA{finaldoublePI=3.1416;finaldoublearea(doubler){return(PI*r*r);}}classFinalTes
6、t{publicstaticvoidmain(Stringargs[]){Aa=newA();System.out.println("area="+a.area(5.0));}}abstract——此字的英文意思是”抽象的”,”非实际的”。此修饰符可修饰类及方法。用abstract修饰的类只是先定义一些方法规格,然后让继承此类的子类来覆盖此规格的内容。即:抽象类不需给出类中每个方法的完整实现,要实现此方法必须要由子类的方法来覆盖。abstract类与方法有下列特性:1.一个抽象类里可以没有定义抽象方法。但只要类中有一个方法是被声明为abstract,则该类必须为abs
7、tract。2.抽象类不能被实例化,即不能被new成一个对象实例。3.若一个子类继承一个抽象类,则子类需用覆盖的方式来实化该抽象父类中的抽象方法。若没有完全实化所有的抽象方法,则子类仍是抽象的。4.抽象方法可再与public、protected复合使用,但不能与final、private和static复合使用。例:Abstract_Demo.javaabstractclassA{abstractvoidcallme();voidmetoo(){System.out.println("在A的metoo方法里");}}classBextendsA{voi
此文档下载收益归作者所有