程序员小白如何理解面向对象?

author author     2023-04-09     300

关键词:

核心是封装状态和相应的过程。通常面向对象是通过改变内部状态实现最终目的。调用对象过程的主要目的是产生改变其内部状态这个副作用(side effect)。这样封装的初衷是避免多个主体访问、修改同一状态造成混乱。在不少场合这样的封装确实也达到了目的,所以面向对象的方式才这么普及。 参考技术A 大家要明白“面向对象”要解决的问题,或者它使用的场景。面向对象并不适用于你在学习各种语言语法时写的那些Demo程序(比如“冒泡排序”“图书/课程管理系统”啥的),甚至于大多数的小型开发项目(比如普通的企业网站、个人博客)都不适合。面向对象适合的是那些业务逻辑复杂(其实用“繁杂”更恰当一些)的大型项目。所谓繁杂,繁指多,杂指乱,项目“杂乱”,可以表现为:功能多改动多,所以代码量大、开发人员多、开发/维护跨度时间长。 参考技术B 面向对象始于模拟应用,后来被视为面向过程编程无法向巨型项目扩展绝症的解药。再以后被『发挥』到极致,不管适不适合都要用面向对象的方式去解决,应了那句老话『锤子眼里全是钉子』。基本上代码里面出现诸如 executor.execute() 类似表达时,它在面向对象这条歧途上就已经走得太远了。当所有的工具、方法论、指导思想都是同一种角度出发的时候,产生这样怪异的结果也就不难理解了。 参考技术C 面向对象的『过程』部分还是原来面向过程的『过程』,其命令是有顺序的。可变状态的副作用使得命令之间的存在顺序依赖。聪明的编译器会对过程的顺序进行分析,看看哪些是可以重新排序或者同时执行的,但由于依赖关系没有指明,这样的优化还是相当有限。这导致了程序可以并行化的部分不明朗。顺序依赖也不利于多核并行计算。 参考技术D 简单地说,就是UI离不了,其它应用碰不得。巧合的是,大多数UI framework都是严格单线程的,比如Cocoa、Swing。Win32是one message queue per thread,其实只是一种复杂化的或者说多实例化的单线程模型,而且实际中很少有人真的在non-main-thread里开辟message queue。这也和『反并行化』相互印证了。另外,当你试图运用OOP的时候,就会倾向于扩大单个模块的复杂度,忽视进程分离等降低复杂度的技术。

java入门零基础小白教程day06-类和对象(代码片段)

4day06-JAVAOOP课程目标1.【理解】什么是面向对象2.【理解】类和对象的关系3.【掌握】类的定义和使用4.【掌握】三大特征之封装5.【掌握】this关键字的使用一.面向对象概述1.1什么是面向对象Java语言是一种面向对象的程序设计语言... 查看详情

如何理解面向对象

如何理解面向对象?什么是面向对象,面向对象其实就是一种设计模型。不用理解太多,这里不是最重要。面向对象的基本特征如何理解?1)抽象:将相同事物抽象出来成为一种数据结构,或者是用类(面向对象),或者是用... 查看详情

编程新手如何理解“面向对象”

...得深了一点,新手随便看看就行。说正事,编程新手应该如何理解“面向对象”?首先,面向对象仍然是目前最主流、最有效地处理复杂业务逻辑的手段。大家不要矫枉过正,听有些家伙叫嚣“面向对象已死”啥的。那么多以前... 查看详情

java小白也能懂的面向对象

类是对一组具有共同特征和行为的对象的抽象描述。理解[1]类是专门用于描述现实生活中的事物的。[2]类描述的事物都具有共同的特征和行为。[3]类就是我们通常所说的 “类型”,描述的是一个群体性概念,对群体性概... 查看详情

弱弱的小白记录之——面向对象实现简单的歌曲管理信息

实现简单的面向对象方法来管理歌曲信息的增删改查。数据驱动思想,也可以理解单项数据绑定,既:数据发生变化,页面也跟着变化;思路:  使用构造函数来存储数据信息;  使用原型来存储方法(增删改查);  修... 查看详情

java面向对象思想如何理解?

从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象... 查看详情

面向对象的理解

...象的基本概念   面向对象,这个概念对于每个程序员来说都不会陌生,我不理解,面试遇到好多次,每次都表述不清楚,后来我就去网上搜,得到以下结果,几乎每篇文章说的都不一样   维基百科:是一种... 查看详情

javascript面向对象的程序设计之理解对象属性

...先,JavaScript面向对象的程序设计,主要分三部分。  理解对象属性;  理解并创建对象;  理解继承。本文主要从第一方面来阐述:理解对象属性首先我们来理解Javascript对象是什么?在Javascript中,万物皆对象。其中创建... 查看详情

java如何实现面向对象思想

“在JAVA中,我们所做的所有工作,就是定义类,创建这些类的对象,并传消息给这些对象” 对于JAVA面向对象思想的学习,依照此理解顺序1、理解面向对象的总体思想与主要特性,例如封装,继承,多态,超类,集合,泛型... 查看详情

1-理解面向对象

   java语言是纯粹的面向对象的程序设计语言,主要表现为java完全支出面向对象的三种基本特征:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。java语言以对象为中心,java程序的最小单位是类,整个java程序是由一个... 查看详情

c#面向对象编程中如何定义类,理解各个关键字的作用

第一:基本类的定义1classPerson2{3//我是一个Person类,默认类的修饰符是intenal,只能在当前程序集中访问4}和上面案例一样的类定义如下,二者意思一样1internalclassPerson12{3//我是一个Person1类,允许当前程序集中访问,其它项目不能访... 查看详情

面向过程与面向对象的理解

...p;面向过程:他是将做一件事情,清晰分清出每一个步骤,程序员的主要注意力在方法上,例如我们炒菜:1、洗到洗菜;2、切菜;3、炒菜    面向对象编程,具体到每一个事物上,程序员的主要注意力放在对象上,... 查看详情

面向对象的个人理解

...面向对象,即使到了现在人就是不能够完全可以说明白。程序员之路的设计理念分为:面向过程和面向对象;面向过程:要想得到一个结果需要一步一步的去设计出来,一步一步的敲代码去实现这是一个过程。比如说要比较两个... 查看详情

面向对象之封装,继承,多态的理解

...是封装,手机,电脑,电视这些都是封装。你只需要知道如何去操作他们,并不需要知道他们里面是怎么构造的,怎么实现这个功能的。2.如何实现封装  在程序设计里,封装往往是通过访问控制实现的。C++,Java,AS3中都 查看详情

python小白到老司机,快跟我上车!基础篇(十七)(代码片段)

类与对象1、面相对象的理解考虑到部分读者可能没有接触过面向对象编程,所以先介绍下面向对象的一些特征,形成一个面向对象概念的基本认知,有助于后面具体的学习Python的面向对象编程。①对象引入按照普通... 查看详情

面向对象的程序设计-1-理解对象

1.简单的字面量对象varperson={name:‘miaowwwww‘,age:22,sayName:function(){console.log(this.name);}}; 2.对象的属性类型   2.1对象的属性分为两类:数据属性和访问器属性(getter/setter)    A.数据属性(name,age,sayName),含有4个描述... 查看详情

第六章-面向对象的程序设计(理解对象)

...或方法都有一个名字,而每一个名字都映射到一个值。1.理解对象创建对象有对象字面量的方法,这种方法比较常用,也是比较推荐的。1varperson={2name:‘xu‘,3age:27,4sayName:function(){5alert( 查看详情

深度理解面向对象的基础-抽象

...象的形,却没有面向对象的魂。今天我们首先来深度理解一下面向对象的基础——抽象&#x 查看详情