Java的面向对象程序设计.ppt

Java的面向对象程序设计.ppt

ID:56431384

大小:542.50 KB

页数:34页

时间:2020-06-18

Java的面向对象程序设计.ppt_第1页
Java的面向对象程序设计.ppt_第2页
Java的面向对象程序设计.ppt_第3页
Java的面向对象程序设计.ppt_第4页
Java的面向对象程序设计.ppt_第5页
资源描述:

《Java的面向对象程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四讲面向对象程序设计2讲师:1上讲回顾OOP与PPL类和对象:逻辑模型和物理实体new关键字引用变量的实质实例字段变量与本地局部变量的区别类的封装原则21、永远保持数据私有。这是首先需要考虑的最重要的一点:2、永远初始化数据。Java并不对本地变量初始化,但它会初始化对象中的实例字段。但是永远不要依赖于默认值;3、不要在一个类中使用太多的基本类型。4、并非所有字段都需独自的字段访问方法和更改方法5、用标准形式对类定义。我们总是以下面的次序列出类的内容:公开部件;包作用域部件;私有部件在每一部分内我们列出次序如下:实例方法

2、;静态方法;实例字段;静态字段6、把有太多职责的类分解。7、使类和方法的名字反映它们的职责。开发中要注意的(类设计技巧)3本讲目标掌握类的构造器掌握包概念和应用掌握访问控制4回顾一下类的组成classCar{StringstrProvider=“”;intnDoorNumber=0;intnSpeed=0;voidbrake(){…}voidspeedUp(){…};voidslowDown(){…}}5本讲目标掌握类的构造器掌握包概念和应用掌握访问控制6构造器构造器是类的一种特殊方法,它的特殊性主要体现在以下的几个方面:

3、(1)构造器的方法名与类名相同(2)构造器没有返回类型(3)构造器的主要作用是用于构造并初始化对象(4)构造器总是和new运算符一起被调用(5)构造器可以有0、1或多个参数(6)构造器不能够被类中其它方法显式调用7构造器classBox{doublewidth;doubleheight;doubledepth;Box(){System.out.println("ConstructingBox");width=10;height=10;depth=10;}doublevolume(){returnwidth*height*d

4、epth;}}8默认构造函数默认构造函数指没有参数的构造函数如果编写的类没有构造函数,系统会自动提供一个默认构造函数,它把对应类中所有的实例字段设为默认值9带参数的构造函数classBox{doublewidth;doubleheight;doubledepth;Box(doublew,doubleh,doubled){width=w;height=h;depth=d;}doublevolume(){returnwidth*height*depth;}}调用:Boxmybox1=newBox(10,20,15);Boxmy

5、box2=newBox(3,6,9);10什么是重载(overloading)?在相同的作用域里面,至少有两个方法具有相同的方法名,且参数声明不同就构成了重载。参数声明不同包括个数不同类型不同顺序不同(列表内的类型不完全相同)不建议使用顺序不同的重载。11重载构造函数Java为每一个类自动提供缺省构造函数一旦创建了自己的构造函数,缺省的构造函数将不复存在。重载构造函数提供了一组创建对象的方式,可以根据需要决定是否带初始参数。publicclassconstructOverload{intx;constructOverloa

6、d(){x=0;System.out.println("不带参数的构造函数");}constructOverload(intx){this.x=x;System.out.println("带一个参数的构造函数");}}12重载机制实现原理编译器列举所有同名方法检查各方法中提供的参数类型选择调用最佳匹配方法:如无法找到,或找到多个方法匹配,报告错误13构造函数的规则(一):构造函数能够使用任何方法修饰符,包括private。构造函数名称必须与类名相同构造函数一定不能有返回类型让方法与类具有相同的名称是合法的(但是愚蠢的),但

7、是,这并不能使它成为一个构造函数。如果看到返回类型,它就是一个方法,而不是构造函数14默认构造函数总是无参数构造函数显式调用构造函数的唯一方法是从另一个构造函数之内调用。如果想要无参数构造函数,并且类代码中已包含其他任何构造函数,编译器将不提供无参数构造函数。如果不在类代码中输入构造函数,编译器将自动生成默认构造函数构造函数的规则(二):15publicclassExample{inta,b;{a=11;b=22;}publicExample(){a=10;b=20;}}提问:能编译通过吗??16初始化块Java中有三种初

8、始化属性的方式:声明中赋值在构造函数中设置值初始化块这种机制并不是必须的,而且也不常见。把初始化代码放在构造函数内显得更为直截了当17Java构造函数执行过程:初始化所有数据字段为默认值(0、false、null)按照在类声明中出现的次序依次执行所有实例字段初始化语句和初始化块语句执行父类构造器主体,执

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。