ImageVerifierCode 换一换
格式:PPT , 页数:35 ,大小:484.50KB ,
资源ID:2662783      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2662783.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面向对象的程序设计.ppt)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

面向对象的程序设计.ppt

1、面向对象程序设计面向对象程序设计本课内容本课内容方法的重载 This关键字对象的创建和初始化细节几种常用的Java类Java类的static成员final关键字 方法重载方法重载 在同一个类中可以定义多个同名方法-方法重载public class PrintStreampublic void println(int i)public void println(float f)public void println(String s)重载方法的参数列表必须不同 重载方法的返回值类型可以相同,也可以不同构造方法重载构造方法重载(代码重用代码重用)构造方法重载举例:public class Pers

2、onpublic Person(String name,int age,Date d)public Person(String name,int age)public Person(String name,Date d)构造方法重载,参数列表必须不同可以在构造方法的第一行第一行 使用this()关键字调用其它(重载的)构造方法构造方法重载举例构造方法重载举例import java.util.Date;public class Person private String name;private int age;private Date birthDate;public Person(Strin

3、g name,int age,Date d)this.name=name;this.age=age;this.birthDate=d;public Person(String name,int age)this(name,age,null);public Person(String name,Date d)this(name,30,d);public Person(String name)this(name,30);Ex1 编写应用程序编写应用程序TestOverride.java测试前页测试前页Person.java中的重载方法中的重载方法 构造方法不能构造方法不能继承继承子子类类继继承承父

4、父类类所所有有的的成成员员变变量量和和成成员员方方法,但法,但不继承不继承父类的构造方法父类的构造方法在在一一个个Java类类中中可可以以通通过过两两种种方方式式获获得得构造方法构造方法使用系统默认的无参构造方法使用系统默认的无参构造方法显式定义一个或多个构造方法显式定义一个或多个构造方法一一旦旦显显式式定定义义了了构构造造方方法法,则则系系统统不不再再提供默认构造方法提供默认构造方法子类的构造方法中一定要子类的构造方法中一定要调用调用父类构造方法父类构造方法在在 子子 类类 的的 构构 造造 方方 法法 中中 可可 使使 用用 语语 句句super(argument_list)显式调用显式调

5、用父类的构造方法父类的构造方法如如果果子子类类的的构构造造方方法法中中没没有有显显示示地地调调用用父父类类构构造造方方法法,也也没没有有使使用用this关关键键字字调调用用重重载载的的其其它它构构造造方方法法,则则系系统统默默认认调调用用父父类类无参数无参数的构造方法的构造方法如如果果子子类类构构造造方方法法中中既既未未显显式式调调用用父父类类构构造造方方法法,而而父父类类中中又又没没有有无无参参的的构构造造方方法法,则编译出错则编译出错调用父类构造方法举例调用父类构造方法举例public class Student extends Person private String school;p

6、ublic Student(String name,int age,String s)super(name,age);school=s;public Student(String name,String s)super(name);school=s;public Student(String s)/super();school=s;this/super(1)thisthis是对是对当前对象的一个引用当前对象的一个引用supersuper是对是对父类的一个引用父类的一个引用什么叫当前对象的一个引用呢?我们先来看一些例子什么叫当前对象的一个引用呢?我们先来看一些例子class Box class

7、Box double width;double height;double depth;double width;double height;double depth;double volume()return width*height*depth;double volume()return width*height*depth;void void setDim(doublesetDim(double width,double height,double depth)width,double height,double depth)widthwidth =width;=width;height

8、 height=height;=height;depth depth =depth;=depth;JavaJava中特殊而且非常有用的引用中特殊而且非常有用的引用this.this.this.this.this.this.按照变量定义域的规则,这种情况下成员变量(蓝)按照变量定义域的规则,这种情况下成员变量(蓝)会被方法中局部变量(红)覆盖掉会被方法中局部变量(红)覆盖掉使用使用thisthis引用后,成员引用后,成员又重新暴露出来了又重新暴露出来了用用thisthis引用解决成员变引用解决成员变量与成员方法的局部变量与成员方法的局部变量名称冲突的问题量名称冲突的问题this(2)如果我们用下

9、列语句如果我们用下列语句Box bx1=new Box();Box bx1=new Box();Box bx2=new Box();/Box bx2=new Box();/生成了两个生成了两个BoxBox的对象的对象从外部看前一个对象的引用是从外部看前一个对象的引用是bx1bx1,从,从它的内部看引用则是它的内部看引用则是thisthis同样道理,从外部看第二个对象的引用是同样道理,从外部看第二个对象的引用是bx2bx2,而从而从bx2bx2的内部看的内部看它的引用也是它的引用也是thisthis这就是说,这就是说,在一个对象的内部,如果想得到这个对象的引用,要在一个对象的内部,如果想得到这个

10、对象的引用,要用用thisthis,而不是它的名称而不是它的名称从一个对象的内部看它的父类的对象就是从一个对象的内部看它的父类的对象就是supersuperthis(3)/superthisthis作为输入参数作为输入参数thisthis表示本对象的表示本对象的getValue(AgetValue(A a)a)调用父类的构造方法调用父类的构造方法调用父类的调用父类的getValuegetValue()()方法方法class A class A A(intA(int v)value=v;v)value=v;public public intint getValue(AgetValue(A a)a

11、)System.out.println(getValueSystem.out.println(getValue(.)of class A);(.)of class A);return a.value;return a.value;protected protected intint getValuegetValue()()System.out.println(getValueSystem.out.println(getValue()of class A);()of class A);return return this.getValue(thisthis.getValue(this););pr

12、otected protected intint value;value;class B extends A class B extends A B()super(7);B()super(7);public public intint getValue(BgetValue(B b)b)System.out.println(getValueSystem.out.println(getValue(.)of class B);(.)of class B);return b.value;return b.value;protected protected intint getValuegetValue

13、()()System.out.println(getValueSystem.out.println(getValue()of class B);()of class B);return return super.getValuesuper.getValue();();this(4)/更多的例子更多的例子public class ThisTestDemo1 public class ThisTestDemo1 public static void main(String s)public static void main(String s)A a=new A(30);A a=new A(30);

14、B b=new B();B b=new B();System.out.println(a.getValueSystem.out.println(a.getValue();();System.out.println(b.getValueSystem.out.println(b.getValue();();getValuegetValue()of class A()of class AgetValuegetValue(.)of class A(.)of class A3030getValuegetValue()of class B()of class BgetValuegetValue()of c

15、lass A()of class AgetValuegetValue(.)of class A(.)of class A7 7a.getValuea.getValue()()的调用顺序的调用顺序调用调用a a的的getValuegetValue()()调用调用a a的的getValue(AgetValue(A a)a)返回返回a a对象的对象的valuevalue值值b.getValueb.getValue()()的调用顺序的调用顺序调用调用b b的的getValuegetValue()()调用调用a a的的getValuegetValue()()调用调用a a的的getValue(AgetV

16、alue(A a)a)返回返回a a对象的对象的valuevalue值值使用使用thisthis引用调用自己的构造方法引用调用自己的构造方法this(5)class Box class Box/Box()width=10;height=10;depth=10;Box()width=10;height=10;depth=10;Box()Box()this(10,10,10);this(10,10,10);Box(double w)Box(double w)this(w,10,10);this(w,10,10);Box(double w,double h,double d)Box(double w,double h,double d)width=w;height=h;depth=d width=w;height=h;depth=d;double volume()return width*height*depth;double volume()return width*height*depth;double width;double height;double depth;double wi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1