首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

谈谈我对面向对象以及类与对象的理解

面向对象的编程方式就是为了实现上述目的二出现的。它使得编程工作更直观,更易理解。需要注意的是这里说的编程不光是coding还包括了设计的过程也是面向对象的。...所以说其实面向对象和面向过程并不是编程的区别(需要实现的业务逻辑的量不会产生变化),而是设计的区别! 类与对象 类是抽象的,而对象是具体的 如何理解上面的话呢?...对象则是根据所属类模板创造出来的实实在在的事物。在程序中我将这个实实在在的事物称之为实例,我们为它的属性赋上特定的值,让它成为张三或者李四。在内存里来说,对象是表示的就是具体数据。...面向对象就是这一发展进程的产物,它使得编程工作更贴近人的思维方式,从而大大提升编程效率。 我们必须明白的是面向对象并不是一种编程方式,而是一种编程思维方式,这种思维方式涵盖了分析,设计,编码等。...PS:如果觉得我的分享不错,欢迎大家随手点赞、转发。

80930

谈谈我对面向对象以及类与对象的理解

面向对象的编程方式就是为了实现上述目的二出现的。它使得编程工作更直观,更易理解。...所以说其实面向对象和面向过程并不是编程的区别(需要实现的业务逻辑的量不会产生变化),而是设计的区别! 类与对象 类是抽象的,而对象是具体的 如何理解上面的话呢?...对象则是根据所属类模板创造出来的实实在在的事物。在程序中我将这个实实在在的事物称之为实例,我们为它的属性赋上特定的值,让它成为张三或者李四。在内存里来说,对象是表示的就是具体数据。...关于什么是栈与堆在这就不细说,有空我再整理一篇文章详细说明。...面向对象就是这一发展进程的产物,它使得编程工作更贴近人的思维方式,从而大大提升编程效率。我们必须明白的是面向对象并不是一种编程方式,而是一种编程思维方式,这种思维方式涵盖了分析,设计,编码等。

57320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我是怎样教媳妇面向对象编程的

    丈夫:行,我想你已经知道怎么用类和对象了。今天我们来学习面向对象设计。 妻子:等等。了解面向对象规范对面向对象编程来说难道不够吗?我的意思是,我能够定义类,封装属性和方法。...我能够根据它们的关系定义类的继承。那还有什么呢? 丈夫:很好的问题。面向对象规范和面向对象编程完全是两码事。让我展示一个现实生活中的例子来帮助你理解它们。...妻子: 亲爱的,你闲扯这些到底要说明什么呢 丈夫: 我说的这个例子跟面向对象规范很类似,面向对象规范为面向对象编程定义了基本的规范,它是面向对象编程的主要思想。...而应用“面向对象设计”是做到敏捷设计的关键。那么,什么时候你可以说你的程序应用了面向对象设计? 妻子:我也正想问呢。...Google 它,学习它,理解它。有问题就找我。 妻子:我听说还有些根据设计原则编写的设计模式。 丈夫:对的。设计模式不过就是针对一些经常出现的场景的一些通用的设计建议。主要的想法还是面向对象原则。

    81080

    设计模式 - 谈谈我对面向对象的理解

    要学习好设计模式,首先需要深刻理解面向对象,本文将深入浅出地介绍面向对象的编程的思想和我的一些理解。同时这里也表达一下对把这本好书赠予我的韩骏韩老师的感谢。...大家可以点击下方公众号名片关注韩老师: 在5年前,我刚开始学习编程的时候,我也被面向对象卡了很久。我是从Python开始入门编程的,当时学习的时候计算阶乘、水仙花数用高中数学的知识都能轻松做出来。...回顾我的学习过程,我认为之所以我在学习的过程中频繁卡壳,根本原因是我当时对面向对象这个编程思想一知半解,一直用面向过程的方式去思考问题,解决问题。...为什么我们需要封装呢,比如说,我有一个类用来生成一个人的对象: class People { public int age; public long money; } 如果我们对这个人的类不加以限制...那么我们怎么理解多态呢?我觉得一种比较好的方式是将子类理解为父类加持有自己独特的东西。

    38140

    为什么我写不出面向对象的代码

    面向过程OR面向对象 面向过程的代码 在说面向对象前我们来说说什么是面向过程。什么是面向过程呢?...” 那么上面的案例代码也有抽象,也有封装,为什么还是算面向过程思维呢。 那么什么是面向对象呢?...我们为何不将这件事情交给对象本身来做呢?...因此我总结为什么人们更愿意使用贫血模型呢: “ 充血模型相对贫血模型存在一定的设计难度,你需要多花时间思考哪些是对象本身的行为 面向过程的编程思想根深蒂固,很难改变 对代码没有太大负责态度,认为怎么简单怎么来...那么建议你多做一些的思考: 1.我的代码是不是面向对象的代码 2.我的代码设计是否遵循 高内聚,低耦合的设计标准 3.我的代码是否遵循设计原则,如单一职责原则,开闭原则等 4. ...

    1.2K20

    我用 Python 面向对象做算法题,她说要先给兔子找上对象

    她:“不懂什么是面向对象” 我:“就是面对着你” 她:“那得先给兔子找上对象,不止是个数学问题” 我:“……” 我:“人家就是一对兔子” 她:“哦,生的还得是一对兄妹,然后近亲结婚是么” 我:“……”...相应地,我们的思路也是如何通过代码计算该数列中的第 n 项,明显的是以计算过程为中心,也就是所谓的“面向过程”。 Python 代码如何实现该过程呢?...#面向对象 首先是面向对象的概念: 面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。...将兔子对转化成具体对象后,我们想获取的是兔子数目,那么就可以给兔子实例添加一个变量 count 用来统计数目。对每对兔子这个对象来说,它所关联的数量是它自身 1 对 和所有兔宝宝数量的总和。...从面向真·对象,到真·面向对象解决问题,今天也算收获不小。 以上,感谢阅读~!

    46510

    提了这么多年的面向对象,你真的懂它的含义吗?

    面向对象 乔布斯采访 1994 年 Rolling Stone 对乔布斯的采访,乔布斯解释了什么是面向对象编程。 Jeff Goodell:请你用尽量简练的语言解释一下,究竟什么是面向对象的软件?...我举个例子来说明。如果我是一个“洗衣”对象,你可以把脏衣服给我,然后告诉我说:“请帮我把这些衣服洗了吧!”而我恰好知道旧金山最好的洗衣房在哪,并且我会说英语,兜里也有美元。...但是我知道怎么完成这项任务,而你不需要知道任何细节。所有的这些复杂流程都隐藏在我的内部,而我们之间可以高度抽象地互动。这就是对象。他们把复杂过程封装在内部,而对外呈现的接口是高层次的,抽象的。...这样编写好的代码,都线性的堆在一起,那下次如果再想理发、打扫卫生、搬家,那之前的代码怎么复用呢? 我们这时,想到了函数的封装。...如果是嵌入式、专项、小型程序的开发,使用面向过程无疑是最为方便的,因为考虑面向对象的封装可能会浪费大量时间。而在大型项目中,可能会进行大量的复用,这时使用面向对象开发,会为之后节省更多的成本。

    50310

    我对面向对象的6大设计原则的理解

    程序员都知道编程有 3 大类:面向过程、面向对象、面向函数。面向对象是被讨论的最多的,个人认为,这是因为 Java 之类的编程语言有强大的用户基础,本质还是因为比较符合人的直觉。...说到面向对象,大家可能就会很快想到了 23 种设计模式,可只有少部分人会想到面向对象的 6 大原则,所以本文我分享一下我对于 6 大原则的看法。...我认为接口应该是一种承诺,或者是协议。 甲方给乙方一系列接口,就算给了承诺。...) 我是一个人,我从广州去深圳,我说我依赖汽车、火车、自行车,这站在软件角度都不对的,因为我太依赖于细节了,这样面对不了未来的需求变化,所以应该有更好的解决方法。...正确的应该是,我依赖于交通工具这个接口或者是抽象类。 那么,我坐飞机、自行车、汽车、火车都满足情况,未来可能还有地铁、轻轨等等,这就是面向未来的编程方式。 也是底层依赖上层,细节依赖抽象的意思。

    48830

    Go中的面向对象 我算是彻底玩明白了

    大家好,我是Mandy。 前面一篇,分享了Go中的函数和方法之间有什么区别、如何使用,今天来分享一篇关于面向对象的知识。 万丈高楼平地起 在学习之前,我们来普及一下关于面向对象的基础知识。...这种模块化的方式使代码更易于理解、维护和重用,可以提高开发效率。 2、封装和信息隐藏:面向对象编程通过封装将数据和相关方法封装在对象内部,隐藏了对象的实现细节,只暴露必要的接口。...Snipaste_2023-07-19_11-27-47 那该怎么实现呢,答案就是使用Go中结构体来实现。 需要注意的是,本文不会单独去讲结构体的语法内容。重点是总结结构体与面向对象的区别。...它类似于其他编程语言中的类或对象,是一种将数据和相关方法组合在一起的容器。 1、结构体的字段就类似于面向对象中的属性。 2、结构体的方法就类似于面向对象中的方法。...它类似于其他编程语言中的结构体,但在Go中,struct不具备面向对象编程中类的所有特性。

    1.2K80

    图文详解:Kafka到底有哪些秘密让我对它情有独钟呢?

    大家好,我是小羽 最近很少发文,一是开始总结了一下自己做了两个多月的公号了,都收获了什么,学到了什么。 二是正好这段时间公号开始迁移,所以也借这段时间可以休息下,总结下别人是怎么写好文章的。...随着对实时性的要求越来越高,那么在庞大的数据的传输过程中怎么能保证数据的快速传递呢,由此,消息队列产生了。 “消息”是在两台计算机间传送的数据单位。...消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。 消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。...灵活性 & 峰值处理能力:使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。...那么如何区分消息是压缩的还是未压缩的呢,Kafka在消息头部添加了一个描述压缩属性字节,这个字节的后两位表示消息的压缩采用的编码,如果后两位为0,则表示消息未被压缩。

    47020

    我来重新学习 javascript 的面向对象(part 4)

    ,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针,当我们将原型对象等于另外一个类型的实例的时候,就会出现原型对象包含一个指向另外一个原型的指针,例如 dog原型对象 指向了...我最喜欢用《javascript 高级程序设计》第三版的图来说明,因为他画的比较详细而且容易看明白(虽然我也是看了十来遍才看懂),借用他的例子和图来解释我们的例子: ?...为什么可以这样呢? 利用了函数的执行环境上下文,这里的“继承”的目的只是为了能够使用超类的属性和方法(不算是真正的继承),所以直接将超类的构造函数放到子类的构造函数里面执行,从而将他们进行合体。...function Food() { this.colors = ["red", "blue"]; } Food.prototype.getType = function () { console.log("我是...this.getType = function() { console.log("我是 food 的getType"); }; } var food1 = new Fruit();

    33310

    🐒🐒🐒**面向对象的编程,顾名思义就是面向你的男朋友or女朋友(俗称对象),去进行编程!** 这时候有的小伙伴会问啦:那我没对象怎么面向对象编程呢~

    一、面向对象编程概述1.1面向对象编程定义面向对象的编程,顾名思义就是面向你的男朋友or女朋友(俗称对象),去进行编程!...这时候有的小伙伴会问啦:那我没对象怎么面向对象编程呢~答:这个时候你可以跳过面向对象编程,去学习面向单身狗编程 哈哈哈,开个玩笑,那什么是真正的面向对象编程呢?...➡️➡️➡️对象具备解决问题过程中的行为⚠️⚠️⚠️ 若加入悔棋功能,面向过程和面向对象,分别怎么实现呢?...♨️self的字面意思是自己,我们可以把它当做C++里面的this指针理解,表示的是对象自身。...✴️静态方法跟定义它的类没有直接关系,只是起到了类似函数的作用。十、面向对象应用1.定义一个类描述数字时钟。

    11810

    我来重新学习 javascript 的面向对象(part 1)

    很多job 的描述都说要求精通 javascript 面向对象编程,但是根据一般的套路,写精通其实就是熟练,写熟练其实就是一般,写一般其实就是懵逼! ?...虽然话说如此,但是我们还是要熟练使用 javascript 面向对象编程的,毕竟这是js社会高能人才的其中一个标准,这里我就用一个鲜活的例子来说明和理解我们应该如何使用javascript 面向对象的方式来编程...); } }; 起码代码少了一些,但是还是没办法很好解决我要写100000段代码的问题,所以再后来的人们就开始使用一些高级玩意来解决这个问题。...但是用了一段时间之后,随之而来发现一个新问题,当食物多起来的时候,老板貌似不知道哪些食物是属于那些分类的(假设老板是 zz),那怎么办呢?...其实在之前的工厂模式里面,也存在这个问题,不过工厂模式更彻底,直接完全创建一个新对象,而构造函数模式的话只是方法会被重新创建。 那怎么解决呢?会用到原型模式,下回分解。

    41930

    我来重新学习 javascript 的面向对象(part 5)

    (老板要求什么的,管他呢) 一、继承-组合继承、伪经典继承 这是一种将原型链和借用构造函数的技术结合起来的一种继承模式。不是假合体,是真合体!...Object.create会将参数里的对象添加到它返回的新对象的原型对象里面去,这样首先生成了一个新对象,并且该对象的原型对象是参数里的值,即Shape.prototype,新对象是临时的,暂时看不到,...寄生式继承的思路跟寄生构造函数模式和工厂模式很类似,核心思想是创建一个仅用于封装继承过程的函数,该函数在内部以某种方式来增强对象,最后再像真得是它做了所有工作一样返回对象。...图片来自https://www.jianshu.com/p/0045cd01e0be 原型链没被切断,是因为是用了寄生(复制)的方式来进行超类原型对象的复制,整个复制的话,会保存它的原型链,然后将这个复制出来的原型对象直接赋值给子类...是不可能完整了解 javascript 的,起码在面向对象这部分是不行的,很多网上的大(zhuang)牛(bi)都会叫你认真阅读这本书,但是对于初学者来说,基本是很难理解得到作者的思路和意思的,不是资质问题

    38910

    Go中的面向对象(多态) 我算是彻底玩明白了

    大家伙,我是Mandy。 上一篇,我们分享了在Go中是如何实现面向对象,文章中对面向对象的三大特性中的继承、封装,做了一个理论和实践的总结,这一篇继续分享关于另外一个特性,那就是多态。...1、面向对象中的多态(Polymorphism)是指一个对象可以具有多种不同的形态或表现方式。简单来说,就是同一个类型的对象,在不同的上下文中表现出不同的行为。...多态性是面向对象的三大特性之一(封装、继承、多态)。 2、在多态中,父类的引用可以指向子类的对象,通过父类的引用调用子类的方法。...Go语言实现 因为Go中没有面向对象的概念,但根据多态的定义和特点,我们可以使用Go中的interface来实现多态。...到此,在Go中实现面向对象以及三大特性(封装、继承和多态)就给大家分享完毕。

    86620

    我来重新学习 javascript 的面向对象(part 3)

    // 原型模式用于定义方法和共享属性 Food.prototype = { constructor: Food, sayName: function() { console.log("我是...; } } var food1 = new Food("苹果", ["巴西", "印度"]); food1.sayName(); // 返回 我是苹果 通过在构造函数执行的时候来判断是否将共享的东西添加到原型对象里面...,这样就不怕之前出现的先 new 实例化对象,然后再添加原型对象的属性的问题了(回想一下原型对象被重写之后,原型对象丢失,实例无法使用原来的原型对象的数据的问题)。...(因为他每次都会new Object(),重置原型对象的信息) 四、稳妥构造函数模式 这个只是了解一下即可,因为实际中我还没用过,但是需要扩大知识面,无论从装逼还是装逼都还是需要的。...,香蕉等等,要是按照现在的模式,看来是要有多少种就要写多少种,然后还可能会导致一些种类属性重复,老司机一眼就看出来,需要做一些种类继承了,但是要怎么做呢?

    37310

    面试官:“你真的会面向对象开发吗?”,我沉默了...

    hello,你好呀,我是灰小猿,一个超会写bug的程序猿。...一听到面向对象这个词,大家肯定都不会陌生,并且我们平常在进行的开发大多数也都是以面向对象为基础的,但是在进行面向对象程序设计和开发的时候,你真的有按照面向对象的设计原则来开发吗?...看看你在平常的开发中有哪些方法是不平常不会注意到的呢? (1)单一职责原则(SRP) 就一个类来说,应该仅有一个引起它变化的原因。也就是说,一个类应该只有一个职责。...但面向对象方法的依赖关系刚好相反,具体实现类依赖于抽象类和接口。...(7)迪米特原则 指一个对象应该对于其他对象有最少的了解,这样做的好处就是可以有效地降低类之间的耦合要求。 看完之后你是否还会觉得自己真正懂得面向对象开发的精髓呢?

    23300

    我的WCF之旅(7):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的继承

    当今的IT领域,SOA已经成为了一个非常时髦的词,对SOA风靡的程度已经让很多人对SOA,对面向服务产生误解。其中很大一部分人甚至认为面向服务将是面向对象的终结,现在的面向对象将会被面向服务完全代替。...在开始本Blog之前,我先来谈谈我对SOA和OO的区别,首先申明,这只是一家之言,欢迎大家批评指正,并且关于SO的谈论不是本Blog的主题,只是主题的引子,在这里只是简单讨论而已 。...所以对象是对Data和Behavior的封装,而Service则只是体现了一个Functionality。...在上一篇文章[原创]我的WCF之旅(5):面向服务架构(SOA)对面向对象编程(OOP)的支持——如何实现Service Contract的重载(Overloading)中,我们谈到了WCF如何实现了对...不过有一点我觉得奇怪的是我们原来的BasicWhetherInfo& WindInfo的定义中,我Override了ToString方法,但是在生成的Class中,却没有相应的Code。

    1.7K60

    php面向对象第十三篇 抽象类,记住哈,兄弟们,实现它。哈哈哈

    那什么又是方法体呢? 大括号{}及大括号以内的部分为方法体哈。 重要:没有方法体的后面必须加一个分号作为一个语句的形成哈。...抽象方法: abstract function fun1(); abstract function fun2(); 那什么又是抽象类呢?...> 记住:抽象类中不能产生实例对象。 ,所以不能直接使用。 普通类才可以直接使用。 有一种方法可以实例化,就是必须实现它。记住,抽象类必须在继承的情况下使用的哈。 为什么,因为实现是吧。...,所以我创建一个子女对象初来然后拿东西,啊哈哈哈 <?..."; } function fun2() { echo "我是子类中2实现抽象类中的抽象方法..."; } } $zi1=new zi(); $zi1->fun1(); ?>

    22010

    日拱一卒,伯克利教你面向对象,我不信你学不会

    作者 | 梁唐 出品 | 公众号:Coder梁(ID:Coder_LT) 大家好,日拱一卒,我是梁唐。 今天分享的是伯克利大学CS61A公开课的第六节实验课,这一次实验的主要课题是面向对象。...Object-Oriented Programming 面向对象编程。 在这次实验当中,我们将会深入面向对象编程(OOP),这是一种允许你将数据抽象成拥有各种属性和行为的实体的编程模式。...可以把方法想象成对象的能力或者是行为,我们怎么调用实例的方法呢?很显然,通过.操作。...一共31题,题目并不难,都是关于上面讲述的面向对象概念的一些简单应用。如果被某题难住了,粘贴到Python解释器中运行一下即可。...self.place中的实例属性characters是一个字典,将角色的名称和角色的对象映射起来 当你拿到角色对象之后,你需要用Character类中的什么方法来进行交谈呢?

    45210
    领券