《类对象和接口》PPT课件.ppt
《《类对象和接口》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《类对象和接口》PPT课件.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、类、对象和接口类、对象和接口-李冉J2EE网络编程课件1修饰符修饰符类修饰符类修饰符类修饰符类修饰符修饰符修饰符修饰符修饰符含含含含 义义义义publicpublicabstractabstractfinalfinal可以从其他包中访问可以从其他包中访问可以从其他包中访问可以从其他包中访问本类不能被实例化本类不能被实例化本类不能被实例化本类不能被实例化不能再声明子类不能再声明子类不能再声明子类不能再声明子类变量修饰符变量修饰符变量修饰符变量修饰符修饰符修饰符修饰符修饰符含含含含 义义义义publicpublicprotectedprotectedprivateprivatestaticstat
2、icfinalfinal可以从所有的类中访问它可以从所有的类中访问它可以从所有的类中访问它可以从所有的类中访问它只能从本类及其子类中访问它只能从本类及其子类中访问它只能从本类及其子类中访问它只能从本类及其子类中访问它只能从本类中访问它只能从本类中访问它只能从本类中访问它只能从本类中访问它类变量类变量类变量类变量必须对它赋予初值并且不能修改它(常量)必须对它赋予初值并且不能修改它(常量)必须对它赋予初值并且不能修改它(常量)必须对它赋予初值并且不能修改它(常量)局部变量修饰符局部变量修饰符局部变量修饰符局部变量修饰符修饰符修饰符修饰符修饰符含含含含 义义义义finalfinal必须对它赋予初值并
3、且不能修改它(常量)必须对它赋予初值并且不能修改它(常量)必须对它赋予初值并且不能修改它(常量)必须对它赋予初值并且不能修改它(常量)2方法重载方法重载n n方法重载方法重载方法重载方法重载是指一个类中可以有多个方法具有相同的名是指一个类中可以有多个方法具有相同的名是指一个类中可以有多个方法具有相同的名是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个字,但这些方法的参数必须不同,即或者是参数的个字,但这些方法的参数必须不同,即或者是参数的个字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。(类的构造方法)数不同,或者是参数的类型不同
4、。(类的构造方法)数不同,或者是参数的类型不同。(类的构造方法)数不同,或者是参数的类型不同。(类的构造方法)n nclass Areaclass Area float getArea(float r)float getArea(float r)return 3.14f *r*r;return 3.14f *r*r;double getArea(float x,int y)double getArea(float x,int y)return x*y;return x*y;float getArea(int x,float y)float getArea(int x,float y)retur
5、n x*y;return x*y;double getArea(float x,float y,float z)double getArea(float x,float y,float z)return(x*x+y*y+z*z)*2.0;return(x*x+y*y+z*z)*2.0;注:方法的返回类型和参注:方法的返回类型和参数的名字不参与比较。数的名字不参与比较。3n n每次创建一个实例都需要初始化所有变量,每次创建一个实例都需要初始化所有变量,每次创建一个实例都需要初始化所有变量,每次创建一个实例都需要初始化所有变量,JavaJava允许允许允许允许对象在创建时就初始化。而这种自动初始化
6、是通过使对象在创建时就初始化。而这种自动初始化是通过使对象在创建时就初始化。而这种自动初始化是通过使对象在创建时就初始化。而这种自动初始化是通过使用构造方法(用构造方法(用构造方法(用构造方法(ConstructorConstructor)来实现的。)来实现的。)来实现的。)来实现的。n n构造方法的名字与包含它的类相同,在语法上类似于构造方法的名字与包含它的类相同,在语法上类似于构造方法的名字与包含它的类相同,在语法上类似于构造方法的名字与包含它的类相同,在语法上类似于一个方法。构造方法没有返回值,甚至连一个方法。构造方法没有返回值,甚至连一个方法。构造方法没有返回值,甚至连一个方法。构造方
7、法没有返回值,甚至连voidvoid修饰符修饰符修饰符修饰符都没有。因为一个类的构造方法返回值应是该类本身。都没有。因为一个类的构造方法返回值应是该类本身。都没有。因为一个类的构造方法返回值应是该类本身。都没有。因为一个类的构造方法返回值应是该类本身。构造方法构造方法4(1 1)构造函数的方法名与类名相同;)构造函数的方法名与类名相同;(2 2)构造函数没有返回类型;)构造函数没有返回类型;(3 3)如果类中没有定义构造函数,编译器会自动创建一)如果类中没有定义构造函数,编译器会自动创建一 个缺省的、不带参数的构造函数;个缺省的、不带参数的构造函数;(4 4)构造函数的主要作用是完成对类对象的
8、初始化工作;)构造函数的主要作用是完成对类对象的初始化工作;(5 5)构造函数不能由程序显式地直接调用;)构造函数不能由程序显式地直接调用;(6 6)在创建一个类的新对象的同时,系统会自动调用该)在创建一个类的新对象的同时,系统会自动调用该 类的构造函数为新对象初始化。类的构造函数为新对象初始化。构造方法的特殊性构造方法的特殊性5一个对象的生命周期是:一个对象的生命周期是:一个对象的生命周期是:一个对象的生命周期是:创建创建创建创建使用使用使用使用销毁。销毁。销毁。销毁。n n创建对象时执行构造方法创建对象时执行构造方法创建对象时执行构造方法创建对象时执行构造方法n n4.3.4 4.3.4
9、对象的销毁时使用析构方法对象的销毁时使用析构方法对象的销毁时使用析构方法对象的销毁时使用析构方法finalize()finalize()销毁一个对象销毁一个对象销毁一个对象销毁一个对象n nJavaJava的垃圾回收机制自动判断对象是否在使用,并能够自的垃圾回收机制自动判断对象是否在使用,并能够自的垃圾回收机制自动判断对象是否在使用,并能够自的垃圾回收机制自动判断对象是否在使用,并能够自动销毁不再使用的对象,收回对象所占的资源。动销毁不再使用的对象,收回对象所占的资源。动销毁不再使用的对象,收回对象所占的资源。动销毁不再使用的对象,收回对象所占的资源。对象生命周期对象生命周期6为什么要有为什么
10、要有为什么要有为什么要有thisthisthisthis和和和和supersupersupersuper引用?引用?引用?引用?在子类继承父类的过程中,子类新增的成员变量与成在子类继承父类的过程中,子类新增的成员变量与成在子类继承父类的过程中,子类新增的成员变量与成在子类继承父类的过程中,子类新增的成员变量与成员方法的名称与父类的可能一样。或者在同一个类中员方法的名称与父类的可能一样。或者在同一个类中员方法的名称与父类的可能一样。或者在同一个类中员方法的名称与父类的可能一样。或者在同一个类中的成员方法的参数和成员变量的名字相同。的成员方法的参数和成员变量的名字相同。的成员方法的参数和成员变量的
11、名字相同。的成员方法的参数和成员变量的名字相同。thisthis、supersuper引用和引用和引用和引用和instanceofinstanceof对象运算符对象运算符对象运算符对象运算符7 this this this this 代表当前对象本身(当前对象的引用),以代表当前对象本身(当前对象的引用),以代表当前对象本身(当前对象的引用),以代表当前对象本身(当前对象的引用),以区分于同名的局部变量和其他同名的方法。区分于同名的局部变量和其他同名的方法。区分于同名的局部变量和其他同名的方法。区分于同名的局部变量和其他同名的方法。有时方法体中定义的变量和成员变量名字相同,有时方法体中定义的变
12、量和成员变量名字相同,有时方法体中定义的变量和成员变量名字相同,有时方法体中定义的变量和成员变量名字相同,还有时方法的入口参数和成员变量名字相同,这就需还有时方法的入口参数和成员变量名字相同,这就需还有时方法的入口参数和成员变量名字相同,这就需还有时方法的入口参数和成员变量名字相同,这就需要将三者区别清楚,可以使用要将三者区别清楚,可以使用要将三者区别清楚,可以使用要将三者区别清楚,可以使用 this this this this 专门指明当前对专门指明当前对专门指明当前对专门指明当前对象的成员变量或当前对象的方法。象的成员变量或当前对象的方法。象的成员变量或当前对象的方法。象的成员变量或当前
13、对象的方法。Class ThreeNumber int x,y,z;ThreeNumber(int x,int y,int z)this.x=x;this.y=y;this.z=z;this关键字关键字8 在在在在 java java java java 中父类可以派生子类,子类的成员变量、子类的方法中父类可以派生子类,子类的成员变量、子类的方法中父类可以派生子类,子类的成员变量、子类的方法中父类可以派生子类,子类的成员变量、子类的方法可以和父类的成员变量、父类的方法同名。当需要调用父类的同名可以和父类的成员变量、父类的方法同名。当需要调用父类的同名可以和父类的成员变量、父类的方法同名。当需要
14、调用父类的同名可以和父类的成员变量、父类的方法同名。当需要调用父类的同名成员变量或方法时,可以在子类中使用关键字成员变量或方法时,可以在子类中使用关键字成员变量或方法时,可以在子类中使用关键字成员变量或方法时,可以在子类中使用关键字 super super super super 作前缀,指明作前缀,指明作前缀,指明作前缀,指明父类的成员变量或方法。父类的成员变量或方法。父类的成员变量或方法。父类的成员变量或方法。super()super()super()super()表示调用父类的构造函数表示调用父类的构造函数表示调用父类的构造函数表示调用父类的构造函数 super.f()super.f()
15、super.f()super.f()表示调用在父类中声明的方法表示调用在父类中声明的方法表示调用在父类中声明的方法表示调用在父类中声明的方法 f()f()f()f()。super.number super.number super.number super.number 表示调用父类中的成员变量表示调用父类中的成员变量表示调用父类中的成员变量表示调用父类中的成员变量 number number number number。程序程序supersuper关键字关键字关键字关键字9使用使用super调用父类的构造方法调用父类的构造方法n n子类不继承父类的构造方法,因此,子类如果想使用父类的构造子类
16、不继承父类的构造方法,因此,子类如果想使用父类的构造子类不继承父类的构造方法,因此,子类如果想使用父类的构造子类不继承父类的构造方法,因此,子类如果想使用父类的构造方法,必须在子类的方法,必须在子类的方法,必须在子类的方法,必须在子类的构造方法构造方法构造方法构造方法中使用,并且必须使用关键字中使用,并且必须使用关键字中使用,并且必须使用关键字中使用,并且必须使用关键字supersuper表示,而且表示,而且表示,而且表示,而且supersuper必须是子类构造方法中的必须是子类构造方法中的必须是子类构造方法中的必须是子类构造方法中的头一条头一条头一条头一条语句。语句。语句。语句。n n需要注
17、意的是,如果在子类的构造方法中,没有显示使用需要注意的是,如果在子类的构造方法中,没有显示使用需要注意的是,如果在子类的构造方法中,没有显示使用需要注意的是,如果在子类的构造方法中,没有显示使用supersuper关关关关键字调用父类的某个构造方法,那么默认地有键字调用父类的某个构造方法,那么默认地有键字调用父类的某个构造方法,那么默认地有键字调用父类的某个构造方法,那么默认地有 super()super();语句,即调用父类的不带参数的构造方法。如果父类没有提供不语句,即调用父类的不带参数的构造方法。如果父类没有提供不语句,即调用父类的不带参数的构造方法。如果父类没有提供不语句,即调用父类的
18、不带参数的构造方法。如果父类没有提供不带参数的构造方法,就会出现错误。带参数的构造方法,就会出现错误。带参数的构造方法,就会出现错误。带参数的构造方法,就会出现错误。10使用使用super操作被隐藏的成员变量和方法操作被隐藏的成员变量和方法n n如果我们在子类中想使用被子类隐藏了的父类的成员变如果我们在子类中想使用被子类隐藏了的父类的成员变如果我们在子类中想使用被子类隐藏了的父类的成员变如果我们在子类中想使用被子类隐藏了的父类的成员变量或方法就可以使用关键字量或方法就可以使用关键字量或方法就可以使用关键字量或方法就可以使用关键字supersuper。比如。比如。比如。比如super.xsupe
19、r.x、super.playsuper.play()()就是被子类隐藏的父类的成员变量就是被子类隐藏的父类的成员变量就是被子类隐藏的父类的成员变量就是被子类隐藏的父类的成员变量x x和方法和方法和方法和方法play()play()。11n n对象运算符对象运算符对象运算符对象运算符instanceofinstanceof用来测试一个指定对象是指定类用来测试一个指定对象是指定类用来测试一个指定对象是指定类用来测试一个指定对象是指定类(或它的子类)的实例,若是则返回(或它的子类)的实例,若是则返回(或它的子类)的实例,若是则返回(或它的子类)的实例,若是则返回truetrue,否则返回,否则返回,
20、否则返回,否则返回falsefalse。instanceof对象运算符对象运算符12访问权限访问权限n n使用修饰符使用修饰符使用修饰符使用修饰符privateprivate、protectedprotected和和和和publicpublic来说明访问权限。来说明访问权限。来说明访问权限。来说明访问权限。4.7.1 4.7.1 私有变量和私有方法私有变量和私有方法私有变量和私有方法私有变量和私有方法 修饰符:修饰符:修饰符:修饰符:privateprivate class Tom class Tom private float weight;/weight private float wei
21、ght;/weight被修饰为私有的被修饰为私有的被修饰为私有的被修饰为私有的 private float f(float a,float b)/private float f(float a,float b)/方法方法方法方法f f是私有方法是私有方法是私有方法是私有方法 13补充补充补充补充权限修饰符允许的访问级别权限修饰符允许的访问级别权限修饰符允许的访问级别权限修饰符允许的访问级别权权权权限修限修限修限修饰饰饰饰符符符符同一同一同一同一类类类类同一包同一包同一包同一包不同包的子不同包的子不同包的子不同包的子类类类类所有所有所有所有类类类类公有的公有的公有的公有的(public)(pub
22、lic)保保保保护护护护的的的的(protected)(protected)默默默默认认认认的的的的 私有的私有的私有的私有的(private)(private)14类的继承类的继承n n4.8.1 4.8.1 创建子类创建子类创建子类创建子类n n4.8.2 4.8.2 子类的继承性子类的继承性子类的继承性子类的继承性n n4.8.3 4.8.3 成员变量的隐藏和方法的重写成员变量的隐藏和方法的重写成员变量的隐藏和方法的重写成员变量的隐藏和方法的重写n n4.8.4 final4.8.4 final类类类类finalfinal方法方法方法方法15继承是一种由已有类创建新类的机制。实现代码的复
23、用继承是一种由已有类创建新类的机制。实现代码的复用继承是一种由已有类创建新类的机制。实现代码的复用继承是一种由已有类创建新类的机制。实现代码的复用和事物的抽象和事物的抽象和事物的抽象和事物的抽象图示图示图示图示 继承性继承性继承性继承性 16创建子类创建子类n n在类的声明中,通过使用关键字在类的声明中,通过使用关键字在类的声明中,通过使用关键字在类的声明中,通过使用关键字extendsextends来创建一个类的子来创建一个类的子来创建一个类的子来创建一个类的子类,格式如下:类,格式如下:类,格式如下:类,格式如下:n nclass class 子类名子类名子类名子类名 extends ex
24、tends 父类名父类名父类名父类名 例如:例如:例如:例如:class Students extends People class Students extends People 17子类的继承性子类的继承性1.1.子类和父类在同一个包中的继承性子类和父类在同一个包中的继承性子类和父类在同一个包中的继承性子类和父类在同一个包中的继承性2.2.如果子类和父类在同一个包里,那么子类自然地继承如果子类和父类在同一个包里,那么子类自然地继承如果子类和父类在同一个包里,那么子类自然地继承如果子类和父类在同一个包里,那么子类自然地继承了其父类了其父类了其父类了其父类3.3.中不是中不是中不是中不是pri
25、vateprivate的成员变量作为自己的成员变量,方法同样。的成员变量作为自己的成员变量,方法同样。的成员变量作为自己的成员变量,方法同样。的成员变量作为自己的成员变量,方法同样。2.2.子类和父类不在同一个包中的继承性子类和父类不在同一个包中的继承性子类和父类不在同一个包中的继承性子类和父类不在同一个包中的继承性 如果子类和父类不在同一个包中,那么子类继承了父类的如果子类和父类不在同一个包中,那么子类继承了父类的如果子类和父类不在同一个包中,那么子类继承了父类的如果子类和父类不在同一个包中,那么子类继承了父类的protectedprotected、publicpublic成员变量作为子类的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 类对象和接口 对象 接口 PPT 课件
限制150内