- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA 的面向对象编程--------课堂笔记;局部变量:定义在方法之中的变量。
局部变量要先赋值,再进行运算,而实例变量均已经赋初值。这是局部变量和实例变量的一大区别。 实例变量的对象赋值为 null。
局部变量不允许范围内定义两个同名变量。实例变量的作用域在本类中完全有效,当被其他的类调用的 时候也可能有效。
实例变量和局部变量允许命名冲突。;Overloading 在一个类中可以定义多个同名方法,各个方法的参数表一定不同。但修饰词可能相同, 返回值也可能相同。
在程序的编译过程中根据变量类型来找相应的方法。因此也有人认为 overloading 是编译时的多态, 以后我们还会学到运行时多态。
为什么会存在 overloading 技术呢?作为应对方法的细节。 利用类型的差异来影响对方法的调用。
吃()可以分为吃肉,吃菜,吃药,在一个类中可以定义多个吃方法。
构造方法也可以实现 overloading。例:;父类(SuperClass)和 子类(SonClass)。
父类的非私有化属性和方法可以默认继承到子类。
Class Son extends Father{
}
而如果父类中的私有方法被子类调用的话,则编译报错。
父类的构造方法子类不可以继承,更不存在覆盖的问题。(非构造方法可以) 如果子类访问父类的构造方法,则在编译的时候提示访问不到该方法。 JAVA 中不允许多继承,一个类有且只有一个父类(单继承)。
JAVA 的数据结构为树型结构,而非网状。(JAVA 通过接口和内部类实现多继承)
方法的覆盖(overriding)
方法的重载并不一定是在一个类中:子类可以从父类继承一个方法,也可以定义一个同名异参的方法, 也称为 overloading。
当子类从父类继承一个无参方法,而又定义了一个同样的无参方法,则子类新写的方法覆盖父类的方法, 称为覆盖。(注意返回值类型也必须相同,否则编译出错。)
如果方法不同,则成重载。
对于方法的修饰词,子类方法要比父类的方法范围更加的宽泛。 父类为 public,那么子类为 private 则出现错误。
之所以构造方法先运行父类再运行子类是因为构造方法是无法覆盖的。 以下范围依次由严到宽:
private :本类访问;
default :表示默认,不仅本类访问,而且是同包可见。
Protected:同包可见+不同包的子类可见 Public :表示所有的地方均可见。
当构造一个对象的时候,系统先构造父类对象,再构造子类对象。 构造一个对象的顺序:(注意:构造父类对象的时候也是这几步)
① 递归地构造父类对象;
② 顺序地调用本类成员属性赋初值语句;
③ 本类的构造方法。
Super()表示调用父类的构造方法。 Super()也和 this 一样必须放在第一行。 This()用于调用本类的构造方法。
如果没有定义构造方法,那么就会调用父类的无参构造方法,即 super()。
要养成良好的编程习惯:就是要加上默认的父类无参的构造方法。
思考:可是如果我们没有定义无参的构造方法,而在程序中构造了有参的构造方法,那么如果方法中没 有参数,那么系统还会调用有参的构造方法么?应该不会。
多态:多态指的是编译时类型变化,而运行时类型不变。 多态分两种:
① 编译时多态:编译时动态重载;
② 运行时多态:指一个对象可以具有多个类型。
对象是客观的,人对对象的认识是主观的。 例: ;Animal a=new Dog();查看格式名称; Dog d=(Dog)a。声明父类来引用子类。
(思考上面的格式)
运行时多态的三原则:(应用时为覆盖) 1、 对象不变;(改变的是主观认识)
2、 对于对象的调用只能限于编译时类型的方法,如调用运行时类型方法报错。
在上面的例子中:Animal a=new Dog();对象 a 的编译时类型为 Animal,运行时类型为 dog。
注意:编译时类型一定要为运行时类型的父类(或者同类型)。
对于语句:Dog d=(Dog)a。将 d 强制声明为 a 类型,此时 d 为 Dog(),此时 d 就可以调用运行时类型。 注意:a 和 d 指向同一对象。
3、 在程序的运行时,动态类型判定。运行时调用运行时类型,即它调用覆盖后的方法。
关系运算符:instanceof
a instanceof Animal;(这个式子的结果是一个布尔表达式) a 为对象变量,Animal 是类名。
上面语句是判定 a 是否可以贴 Animal 标签。如果可以贴则返回 true,否则返回 false。 在上面的题目中: a instanceof Animal 返回 True,
a instanceof Dog 也 返 回 True, instanceof 用于判
您可能关注的文档
最近下载
- 国货优品:中兴 Fly 系列随身 WiFi 首款产品 F30 正式发售 .doc
- 丙烯氧化法制备丙烯酸工艺设计.docx
- 内科学中级主治医师资格考试考点速记.doc
- 浙教版(2023)四年级下册信息科技 第9课 人机编码有差异 随堂练习.docx VIP
- 2023年山东理工大学辅导员招聘考试真题(含答案).pdf VIP
- 《急性疼痛评估与管理》课件.ppt VIP
- 浙教版(2023)四年级下册信息科技 第11课 设计统计表 随堂练习(含答案).docx VIP
- 2024年全国各地中考语文作文真题汇编(六十题有解析有范文).doc
- 人民教育出版社小学五年级信息技术下册教案 全册.doc VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(必威体育精装版).pdf
文档评论(0)