面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为(转)

简介: 谈谈你对面向对象的理解 面向对象编程,即OOP,是一种编程范式,满足面向对象编程的语言,一般会提供类、封装、继承等语法和概念来辅助我们进行面向对象编程。 面向对象是基于万物皆对象这个哲学观点. 所谓的面向对象就是将我们的程序模块化,对象化,把具体事物的特性属性和通过这些属性来实现一些动作的具体方法放到一个类里面 面向对象的三大特征 继承,封装,多态 一 继承 继承概念:一个类继承另一个类,则称继承的类为子类,被继承的类为父类。

谈谈你对面向对象的理解

    • 面向对象编程,即OOP,是一种编程范式,满足面向对象编程的语言,一般会提供类、封装、继承等语法和概念来辅助我们进行面向对象编程。

    • 面向对象是基于万物皆对象这个哲学观点. 所谓的面向对象就是将我们的程序模块化,对象化,把具体事物的特性属性和通过这些属性来实现一些动作的具体方法放到一个类里面

    • 面向对象的三大特征 继承,封装,多态

      一 继承

      • 继承概念:一个类继承另一个类,则称继承的类为子类,被继承的类为父类。
      • 目的:实现代码的复用。
      • 理解:子类与父类的关系并不是日常生活中的父子关系,子类与父类而是一种特殊化与一般化的关系,是is-a的关系,子类是父类更加详细的分类。如 class dog 继承于 animal,就可以理解为dog is a animal.注意设计继承的时候.
      • 结果:继承后子类自动拥有了父类的属性和方法,子类可以写自己特有的属性和方法,目的是实现功能的扩展,子类也可以复写父类的方法即方法的重写。

      
 二 封装

      • 概念:封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只
保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。

      • 好处:(1)实现了专业的分工。将能实现某一特定功能的代码封装成一个独立的实体后,各程序员可以在需要的时候调用,从而实现了专业的分工。(2)隐藏信 息,实现细节。通过控制访问权限可以将可以将不想让客户端程序员看到的信息隐藏起来,如某客户的银行的密码需要保密,只能对该客户开发权限。

      三、多态

      • 概念:相同的事物,调用其相同的方法,参数也相同时,但表现的行为却不同。

      • 理解:子类以父类的身份出现,但做事情时还是以自己的方法实现。子类以父类的身份出现需要向上转型(upcast),其中向上转型是由JVM自动实现的, 是安全的,但向下转型(downcast)是不安全的,需要强制转换。子类以父类的身份出现时自己特有的属性和方法将不能使用。
    • “面向过程”和“面向对象”的区别

      • 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 
      • 可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:
        • 1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤 2,9、输出最后结果。把上面每个步骤用不同的方法来实现。
           
        • 如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来 解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对 象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用 第三类对象(规则系统)来对棋局进行判定。

http://www.cnblogs.com/ldnh/p/5475069.html

 

相关文章
|
9月前
|
JavaScript
dialog打开时重新渲染
dialog打开时重新渲染
115 0
|
开发工具 git
Git的正确使用姿势与最佳实践
本文介绍了在现代软件开发中使用Git的一些最佳实践,以帮助开发人员更好地掌握Git的正确使用方法。这些实践包括合理的分支管理策略、频繁提交和有意义的提交信息、定期拉取主分支并解决冲突、代码审查、使用标签进行版本控制、避免在主分支上直接提交代码、使用.gitignore文件、学会使用Rebase、备份和远程仓库、以及持续学习与实践。这些实践有助于提高团队的协作效率,同时也有助于保持项目的稳定性和可维护性。正确使用Git需要积累经验,不断学习和实践。
1005 0
|
8月前
|
PHP
PHP地方门户分类信息网站源码讯客分类信息系统源码(含手机版)
1.上传程序到网站根目录,访问http://域名/install/index.php 进行安装,不要直接打开网址,先直接安装; 2.安装完成后 后台恢复数据即可 默认帐号密码都是admin http://域名/admin/ 3.不要删除任何文件,因为删除文件或者修改代码可能造成错误
385 0
|
IDE Linux 开发工具
IntelliJ IDEA2022破解IDEA2022.2永久破解激活教程
IDEA 目前已经更新到最新的 2022.2.2 版本了,群里的小伙伴私聊问我,为啥之前 2021.3.1 的激活套路对新版本 2022.2.2 不管用了,是个什么情况? 很显然,IDEA 官方发现了这种破解路数,新版本加入了更严厉的反制破解。所以说,小伙伴们破解成功了以后,尽量不要升级 IDEA, 不然大概率又不行了。 好在z大又更新了新的补丁,针对最新版本,这边笔者亲测可行,仅以下文记录本人 IntelliJ IDEA 2022.2.2 版本的激活破解到 2099 年的全过程,步骤非常详细,跟着图文来就行~
47888 3
IntelliJ IDEA2022破解IDEA2022.2永久破解激活教程
|
缓存 网络协议 网络安全
主机虚拟机互Ping问题详解以及原理、解决互ping不通方案
主机虚拟机互Ping问题详解以及原理、解决互ping不通方案
6638 0
主机虚拟机互Ping问题详解以及原理、解决互ping不通方案
|
数据安全/隐私保护 Windows
Windows使用远程桌面连接树莓派
Windows使用远程桌面连接树莓派
1096 0
Windows使用远程桌面连接树莓派
|
安全 网络协议 网络安全
Nmap脚本扫描解密:揭开网络安全的秘密
Nmap脚本扫描解密:揭开网络安全的秘密
255 0
|
消息中间件 运维 Java
rabbitMQ消息中间件的延时队列以及死信队列的使用和应用场景
rabbitMQ消息中间件的延时队列以及死信队列的使用和应用场景
|
JavaScript 前端开发 中间件
前端vue配置反向代理 proxy
前端vue配置反向代理 proxy
549 0
|
存储 运维 Kubernetes
申通快递:核心业务系统云原生化上云技术详解
如果说,快递行业上半场的竞争拼的是规模、服务乃至价格,进入下半场,快递企业们还需要比拼硬核的技术实力。——周金龙(遥方)
2535 14
申通快递:核心业务系统云原生化上云技术详解

热门文章

最新文章