面向对象复习笔记(一)

面向对象复习笔记(一)

一.概念

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访问父类中的静态成员。
在类的静态方法中不能使用$this调用类的非静态成员。
注意:6个
a.静态属性用于保存类的公有数据
b.静态方法里面只能访问静态属性
c.静态成员不需要实例化对象就可以访问
d.类的内部可以通过static或者self关键词访问自身静态成员
e.可以通过parent关键词访问父类的静态成员
f.可以通过类名称在类定义外部访问静态成员

4.final关键词
在子类中编写跟父类中方法名称完全一致的方法,可以完成对父类中方法的重写(overwrite)
a.对于不想被任何类继承的类可以在class之前添加关键字final
b.对于不想被子类重写(修改)的方法,可以在方法定义的前面加final

5.数据访问
a. 用parent关键字可以访问父类中被子类重写了的方法
b.self关键字可以用于访问类自身的成员方法,也可以用于访问自身的静态成员和类常量,使用常量的时候不需要在常量名称前加 $ 符号,
不能用于访问类自身的属性(重点)
c.static关键字用于访问类自身定义的静态成员,访问静态属性时需要在属性前面加 $ 符号

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113022.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 单片机led点阵显示程序_LED点阵

    单片机led点阵显示程序_LED点阵单片机LED点阵一、简述     使用8×8LED点阵显示汉字。向上滚动"中华"两个汉字。   文件打包:链接:https://pan.baidu.com/s/1oHSAIY6qVA7qFFWUvMvJEA密码:snyg二、效果三、工程文件结构1、Keil工程2、仿真电路图四、代码88led.c文件#include<reg51.h>#defineuintunsigne…

    2022年10月22日
    0
  • byte转string字符

    byte转string字符开发过程中从数据库拿出来的数据用tostring会显示为System.Byte[]查了下资料要发现网上的都不适用记录下自己的foreach(DataRowrowinds.Tables[0].Rows){    byte[]datbytes=(byte[])row["dat"];    for(inti=0;i<datbytes.Length;i++)…

    2022年6月29日
    62
  • 上传图片到七牛云并返回图片URL_前端通过url直接获取图片

    上传图片到七牛云并返回图片URL_前端通过url直接获取图片在开发项目的时候,经常会用到上传图片的功能,如果把图片全都存放在项目路径下,会导致项目越来越臃肿,因此可以考虑把图片上传交给第三方处理,此处我们采用七牛云进行图片存储。一.七牛云准备工作1.七牛云注册登录https://portal.qiniu.com/signup/choice2.新建存储空间进入对象存储菜单,点击“新建存储空间”,这里需要实名认证,上传身份证正反…

    2022年9月22日
    0
  • java判断字符串是否为空的方法总结

    方法一:本人推荐的方法,开发中最常用的方法,看起来也比较高大上:  if(StringUtils.isNotBlank(str))//判断字符串不为空  或if(StringUtils.isBlank(str))//判断字符串为空12方法二:比价简单直接的方法  if(s==null||"".equals(s));1方法三:比较字符串长度,效率高,比较绕:…

    2022年4月3日
    43
  • Sublime Text3 编译运行java程序

    Sublime Text3 编译运行java程序SublimeText3编译运行java程序一、必须的准备工作1.计算机上成功安装好javaJDK,并且设置好环境变量。2.计算机上安装的有SublimeTtext3。二、配置SublimeTtext31.找到SublimeTtext3的安装目录下的“Packages”文件夹2.在“Packages”文件夹中找到Java.sublime-packag…

    2022年7月27日
    13
  • tar 命令详解「建议收藏」

    tar 命令详解「建议收藏」tar命令[root@linux~]#tar[-cxtzjvfpPN]文件与目录….参数:-c:建立一个压缩文件的参数指令(create的意思);-x:解开一个压缩文件的参数指令!-t:查看tarfile里面的文件!-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能

    2022年6月5日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号