欢迎来到天天文库
浏览记录
ID:41270872
大小:224.56 KB
页数:31页
时间:2019-08-20
《《类对象和接口》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、类、对象和接口-------李冉J2EE网络编程课件修饰符类修饰符修饰符含义publicabstractfinal可以从其他包中访问本类不能被实例化不能再声明子类变量修饰符修饰符含义publicprotectedprivatestaticfinal可以从所有的类中访问它只能从本类及其子类中访问它只能从本类中访问它类变量必须对它赋予初值并且不能修改它(常量)局部变量修饰符修饰符含义final必须对它赋予初值并且不能修改它(常量)2方法重载方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数
2、不同,或者是参数的类型不同。(类的构造方法)classArea{floatgetArea(floatr){return3.14f*r*r;}doublegetArea(floatx,inty){returnx*y;}floatgetArea(intx,floaty){returnx*y;}doublegetArea(floatx,floaty,floatz){return(x*x+y*y+z*z)*2.0;}}注:方法的返回类型和参数的名字不参与比较。3每次创建一个实例都需要初始化所有变量,Java允许对象在创建时就初始化。而这
3、种自动初始化是通过使用构造方法(Constructor)来实现的。构造方法的名字与包含它的类相同,在语法上类似于一个方法。构造方法没有返回值,甚至连void修饰符都没有。因为一个类的构造方法返回值应是该类本身。构造方法4(1)构造函数的方法名与类名相同;(2)构造函数没有返回类型;(3)如果类中没有定义构造函数,编译器会自动创建一个缺省的、不带参数的构造函数;(4)构造函数的主要作用是完成对类对象的初始化工作;(5)构造函数不能由程序显式地直接调用;(6)在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化
4、。构造方法的特殊性5一个对象的生命周期是:创建→使用→销毁。创建对象时执行构造方法4.3.4对象的销毁时使用析构方法finalize()销毁一个对象Java的垃圾回收机制自动判断对象是否在使用,并能够自动销毁不再使用的对象,收回对象所占的资源。对象生命周期6为什么要有this和super引用?在子类继承父类的过程中,子类新增的成员变量与成员方法的名称与父类的可能一样。或者在同一个类中的成员方法的参数和成员变量的名字相同。this、super引用和instanceof对象运算符7this代表当前对象本身(当前对象的引用),以区分于
5、同名的局部变量和其他同名的方法。有时方法体中定义的变量和成员变量名字相同,还有时方法的入口参数和成员变量名字相同,这就需要将三者区别清楚,可以使用this专门指明当前对象的成员变量或当前对象的方法。ClassThreeNumber{intx,y,z;ThreeNumber(intx,inty,intz){this.x=x;this.y=y;this.z=z;}}this关键字8在java中父类可以派生子类,子类的成员变量、子类的方法可以和父类的成员变量、父类的方法同名。当需要调用父类的同名成员变量或方法时,可以在子类中使用
6、关键字super作前缀,指明父类的成员变量或方法。super()表示调用父类的构造函数super.f()表示调用在父类中声明的方法f()。super.number表示调用父类中的成员变量number。程序super关键字9使用super调用父类的构造方法子类不继承父类的构造方法,因此,子类如果想使用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super表示,而且super必须是子类构造方法中的头一条语句。需要注意的是,如果在子类的构造方法中,没有显示使用super关键字调用父类的某个构造方法,那么默认地有sup
7、er();语句,即调用父类的不带参数的构造方法。如果父类没有提供不带参数的构造方法,就会出现错误。10使用super操作被隐藏的成员变量和方法如果我们在子类中想使用被子类隐藏了的父类的成员变量或方法就可以使用关键字super。比如super.x、super.play()就是被子类隐藏的父类的成员变量x和方法play()。11对象运算符instanceof用来测试一个指定对象是指定类(或它的子类)的实例,若是则返回true,否则返回false。instanceof对象运算符12访问权限使用修饰符private、protected和
8、public来说明访问权限。4.7.1私有变量和私有方法修饰符:privateclassTom{privatefloatweight;//weight被修饰为私有的privatefloatf(floata,floatb)//方法f是私有方法{…}…}13补充权限
此文档下载收益归作者所有