面向对象复习笔记(一)
一.概念
1.面向对象概念:世界万物皆对象。 2.对象的组成:两部分 a.成员属性 :对象的数据模型,用于描述对象的数据,又称为对象的属性,或者对象的成员变量。 b.成员方法:对象的行为模型,用于描述对象能够做什么事情,又被称为对象的方法。 3.对象的特点: a.每个对象都是独一无二。 b.对象是一个特定的事物,他的职能是完成特定的功能。 c.对象是可以重复使用的。 4.什么是面向对象?面向就是编程的时候一直把对象放在心上。 面向对象编程就是 在编程的时候数据结构(数据组织方式)都是通过对象的结构进行存储 5.为甚魔使用面向对象? 对象的描述方式更贴合真实的世界,有利于大型业务的理解 在程序设计的过程中用对象的视角分析世界的时候,能够拉近程序设计与真实世界的距离 6.面向对象的实质:就是把生活中要解决的问题都用对象的方式进行存储(属性 方法) 对象与对象之间通过方法的调用完成互动(方法) 7.面向对象的基本思路: a.识别对象 任何实体都可以被识别为一个对象 b.识别对象的属性 对象里面存储的数据被识别为属性 对于不同的业务逻辑,关注的数据不同,对象里面存储的属性也不同 c.识别对象的行为 对象自己属性数据的改变 对象和外部交互 8.面向对象的原则:高内聚低耦合 a.对象内部是高内聚的:该有的都有,不至于缺胳膊少腿 所有对象相关的内容都封装到对象内部 对象只负责一项特定的职能(投篮) b.对象对外是低耦合的:相互之间依赖关系特别小,程序设计的更灵活,有利于对象的重用 外部世界可以看到对象的一些属性 二、基本实践 1.类的概念: 物以类聚,把具有相似特性的对象归类到一个类中 类定义了这些相似对象拥有的相同的属性和方法 类的对象称为类的一个实例(Instance) 类是相似对象的描述,称为类的定义,是该类对象的蓝图或者原型 类的属性和方法统称为类成员(重要) 类就是一个框架,对象就是把这框架塞满 2.类的实例化(instantiate):通过类定义去创建一个类的对象,类只有一个,可以实例化出多个对象 类的定义里面属性值都是空的,而对象的属性都有具体的值 三.高级实践 1.继承的好处: a.父类里面定义的类成员可以不在子类里面重复定义,节约编程的时间和成本。 b.同一个父类的子类具有相同的父类定义的类成员,因此外部调用它们的时候可以一视同仁 c.子类可以修改和调整父类定义的类成员:我们成为重写overwrite,一旦子类修改了就按照子类修改后的功能执行 d.单继承原则:一个子类只能继承一个父类 2.面向对象的三种访问权限 public:公有的类成员,可以在任何地方被访问(定义该成员的类即自身,该类的子类,其他类) protected:受保护的类成员,可以被其自身及其子类访问 private:私有的类成员,只能被自身访问
3.静态属性和静态方法的定义 静态属性定义时在访问控制关键词后面添加static关键词即可,静态方法同理。如 public static president='tom'; public static function test(){}. 访问静态属性:类名::president #带 符号 。在类定义中使用静态成员时,用self(或static)::president 访问静态方法:类名::test(); 在类定义外部访问静态属性时,我们使用类名::类的静态成员(成员属性,成员方法)。 使用parent访问父类中的静态成员。 在类的静态方法中不能使用
4.final关键词 在子类中编写跟父类中方法名称完全一致的方法,可以完成对父类中方法的重写(overwrite) a.对于不想被任何类继承的类可以在class之前添加关键字final b.对于不想被子类重写(修改)的方法,可以在方法定义的前面加final
5.数据访问 a. 用parent关键字可以访问父类中被子类重写了的方法 b.self关键字可以用于访问类自身的成员方法,也可以用于访问自身的静态成员和类常量,使用常量的时候不需要在常量名称前加 符号, 不能用于访问类自身的属性(重点) c.static关键字用于访问类自身定义的静态成员,访问静态属性时需要在属性前面加 符号
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113022.html原文链接:https://javaforall.cn
相关文章
- 广东电商行业CXO走进华为 共探云原生2.0时代电商行业创新趋势
- 中国电子云发布专属云CECSTACK 以全栈信创赋能千行百业
- 元宇宙,会是下一个互联网吗?
- 数字零售正在嬗变
- 人民日报:套路多损害消费者利益维权难 大数据“杀熟”必须重罚
- 基于MDT的3D-MIMO天线权值优化方法研究与应用
- 换个角度看苹果,换个角度看库克
- LeetCode 1460. 通过翻转子数组使两个数组相等
- 分布式办公引发4大变革,3大分析机构公开8条对策
- 不同类型的边缘计算机介绍
- 开放外链:开启互联网的新纪元
- LeetCode 1305. 两棵二叉搜索树中的所有元素
- 产业互联网正驶向深蓝
- HDC.Cloud 2021|用友·华为云杯第三届开发者大赛 与SaaS开发者共赢云端
- LeetCode 1337. 矩阵中战斗力最弱的 K 行
- LeetCode 791. 自定义字符串排序
- 金融与科技,殊途必同归
- 采取有效云网络安全策略的5个基本步骤
- LeetCode 1221. 分割平衡字符串
- 消息称戴尔考虑出售云计算业务Boomi