精华内容
下载资源
问答
  • 什么是面向对象

    万次阅读 多人点赞 2019-09-09 16:54:50
    以为对象就是一个class(类),并不觉得有什么特殊。直到很久之后,面试官问到什么是OOP,嘴巴都是一个大O,OOP?WTF?那人厌恶的说到就是面向对象编程。我说:Java就是面向对象,就是一切以对象为载体,去编程,去...

    面向对象(OOP)概述

    从我们开始接触Java这门语言后,就有人告诉我们这是一门面向对象的语言。说的最多的是new个对象,其实并不知道什么是对象。以为对象就是一个class(类),并不觉得有什么特殊。直到很久之后,面试官问到什么是OOP,嘴巴都是一个大O,OOP?WTF?那人厌恶的说到就是面向对象编程。我说:Java就是面向对象,就是一切以对象为载体,去编程,去面对。面试官: go out ! now!

    img

    滚回来的我赶紧看看什么是OOP,Object Oriented Programming,原来就是面向对象的编程啊,还有OOD(面向对象的设计),OOA(面向对象的分析)。那什么是面向对象呢?要想了解这个问题我们要先了解面向过程,这样对比我们就好理解了。

    很早很早以前的编程是面向过程的,比如实现一个算术运算1+1 = 2,通过这个简单的算法就可以解决问题。但是随着时代的进步,人们不满足现有的算法了,因为问题越来越复杂,不是1+1那么单纯了,比如一个班级的学生的数据分析,这样就有了对象这个概念,一切事物皆对象。将现实的事物抽象出来,注意抽象这个词是重点啊,把现实生活的事物以及关系,抽象成类,通过继承,实现,组合的方式把万事万物都给容纳了。实现了对现实世界的抽象和数学建模。这是一次飞跃性的进步。

    img

    举个最简单点的例子来区分面向过程和面向对象

    有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择

    1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。

    2、去饭店,张开嘴:老板!来一份鱼香肉丝!

    看出来区别了吗?1是面向过程,2是面向对象。

    面向对象有什么优势呢?首先你不需要知道鱼香肉丝是怎么做的,降低了耦合性。如果你突然不想吃鱼香肉丝了,想吃洛阳白菜,对于1你可能不太容易了,还需要重新买菜,买调料什么的。对于2,太容易了,大喊:老板!那个鱼香肉丝换成洛阳白菜吧,提高了可维护性。总的来说就是降低耦合,提高维护性!

    面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。

    面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现,至于这个功能是如何实现的,管我们什么事?我们会用就可以了。

    面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们使用的就是面向对象了。

    面向过程和面向对象的区别

    面向过程

    优点:性能比面向对象好,因为类调用时需要实例化,开销比较大,比较消耗资源。
    缺点:不易维护、不易复用、不易扩展

    面向对象

    优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
    缺点:性能比面向过程差

    面向对象三大特性五大原则

    img

    面向对象的三大特性

    1、封装
    隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。

    2、继承
    提高代码复用性;继承是多态的前提。

    3、多态
    父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。

    五大基本原则

    • 单一职责原则SRP(Single Responsibility Principle)
      类的功能要单一,不能包罗万象,跟杂货铺似的。

    • 开放封闭原则OCP(Open-Close Principle)
      一个模块对于拓展是开放的,对于修改是封闭的,想要增加功能热烈欢迎,想要修改,哼,一万个不乐意。

    • 里式替换原则LSP(the Liskov Substitution Principle LSP)
      子类可以替换父类出现在父类能够出现的任何地方。比如你能代表你爸去你姥姥家干活。哈哈~~

    • 依赖倒置原则DIP(the Dependency Inversion Principle DIP)
      高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。就是你出国要说你是中国人,而不能说你是哪个村子的。比如说中国人是抽象的,下面有具体的xx省,xx市,xx县。你要依赖的抽象是中国人,而不是你是xx村的。

    • 接口分离原则ISP(the Interface Segregation Principle ISP)
      设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。就比如一个手机拥有打电话,看视频,玩游戏等功能,把这几个功能拆分成不同的接口,比在一个接口里要好的多。

    总结

    • 抽象会使复杂的问题更加简单化。
    • 从以前面向过程的执行者,变成了张张嘴的指挥者。
    • 面向对象更符合人类的思维,面向过程则是机器的思想
    展开全文
  • 什么是类?什么对象?类和对象有什么关系?

    万次阅读 多人点赞 2016-05-13 15:26:11
    面向对象(Object Oriented,OO)。 起初,“面向对象”是指在程序设计中采用封装、继承、多态等设计方法。现在,面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,ObjectOriented Analysis),...

    面向对象(Object Oriented,OO)。

    起初,“面向对象”是指在程序设计中采用封装、继承、多态等设计方法。现在,面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,ObjectOriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及面向对象的编程实现(OOP,Object Oriented Programming)。

    对象和类解释:

    1)对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。

    2)类:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。


    对象和类的关系:

    类与对象的关系就如模具和铸件的关系,类的实力化的结果就是对象,而对对象的抽象就是类,类描述了一组有相同特性(属性)和相同行为的对象。


    class person{ }//这个是类
    $obj = new person();//类的实例化就是对象
    



     

    展开全文
  • 面向对象(Object Oriented,OO)。 面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构...

    面向对象(Object Oriented,OO)。

    面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术[1]发展到一定阶段后的产物。核心特性包括:类,对象,方法,封装,继承和多态。

    对象和类解释:

     

    1.1)对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。   

    1.2)对象是一种具体的概念。

    2.1)类:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。 

    2.2) 类是一种抽象的概念。

     

    对象和类的关系:

    类与对象的关系就如模具和铸件的关系,类的实力化的结果就是对象,而对对象的抽象就是类,类描述了一组有相同特性(属性)和相同行为的对象。

    解释的通俗一点就是,人是一种类,而具体的某一个人就是一个对象,每一个对象都符合这个类型的标准。

    一个类的所有对象都有相同的属性(都是人类),但有不同的属性值(名字、身高不一样等),不同的类的属性不完全相同。

     

    展开全文
  • 在面向对象的编程语言中,类是一个独立的程序单位,它应该一个类名并包括属性说明和服务说明两个主要部分。 什么对象 对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个...

    什么是类

    类的概念:类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。

    什么是对象

    对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。

    之间的联系

    类描述了一组有相同特性(属性)和相同行为(方法)的对象。上面大概就是它们的定义吧,也许你是刚接触面向对象的朋友,
    不要被概念的东西搞晕了,给你举个例子吧,如果你去中关村想买几台组装的PC
    机,到了那里你第一步要干什么,是不是装机的工程师和你坐在一起,按你提供的信息和你一起完成一个装机的配置单呀,这个配置单就可以想象成是类,它就是一张纸,但是它上面记录了你要买的PC
    机的信息,如果用这个配置单买10 台机器,那么这10 台机子,都是按这个配置单组成的,所以说这10
    机子是一个类型的,也可以说是一类的。那么什么是对象呢,类的实例化结果就是对象,用这个配置单配置出来(实例化出来)的机子就是对象,是我们可以操作的实体,10
    台机子,10 个对象。每台机子都是独立的,只能说明他们是同一类的,对其中一个机做任何动作都不会影响其它9
    台机器,但是我对类修改,也就是在这个配置单上加一个或少一个配件,那么装出来的9 个机子都改变了,这是类对象的关系(类的实例化结果就是对象)。

    展开全文
  • 什么是面向对象?为什么面向对象编程?

    万次阅读 多人点赞 2018-01-25 15:02:31
    大多数人追溯学习编程的经历,试图查找为什么面向对象编程?最后答案也只能是“因为大学老师教的...”、“因为工作上遇到...”等等之类的。    在机缘巧合的情况下,我发现了一本书《大话设计模式》。作者...
  • new来给一个类的对象分配空间,和使用类名称来定义一个类的对象有什么区别?难道区别只是new的返回值是个指针,而对象定义得到的是变量名么?或者是在存储空间上不同?有什么不同呢?具体什么时候使用哪个方法呢...
  • 什么是js面向对象有什么特点?

    千次阅读 2017-06-27 18:46:53
    什么是面向对象?面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。–引用自百度百科通俗的理解就是:万物皆对象!世界上的任何事和物都可以被视为对象,而我们需要关注的是对象...
  • 如何js遍历对象数组及对象属性

    万次阅读 2018-12-10 22:50:11
    如何js遍历对象数组及对象属性 条件:在Vue中objectList:[] 接收的后台数据是一个对象数组,对其进行遍历,得到某个具体的对象 for(var item=0;item<this.objectList.length;item++){ //遍历对象数组,item...
  • 什么在线程中用 类名::new 创建Runable对象对象的run方法好像没有被执行,线程3和4没有输出内容(PrintThreadName就是输出当前线程名称的) ``` public static void main(String[] args) { new Thread...
  • jsp 哪些内置对象?作用分别是什么? 序号 内置对象 对应 Servlet 类 作用 1 request javax.servlet.http.HttpServletRequest 客户端的请求信息:Http协议头信息、Cookie、请求参数等 2 ...
  • 简单的例子解释什么是面向对象

    千次阅读 多人点赞 2019-01-23 15:51:47
    什么是面向对象OO:可以先看下 https://www.jianshu.com/p/224d8fc4d0f0 提起面向对象,肯定都会先想到三大特性:封装,继承,多态。那这三大特性具体怎么理解呢?可以先在脑子里过一下。 如题,举个栗子吧: ...
  • 新手小白学JAVA 面向对象对象 封装

    万次阅读 多人点赞 2021-05-06 15:58:57
    面向对象概念 面向对象其实是一种编程思想,通过它可以把生活中复杂的事情变得简单化,从原来的执行者变成了指挥者。 面向对象是基于面向过程而言的。 面向过程强调的是过程,比如: 打开冰箱门 2. 把大象放进去 3. ...
  • Spring是使用反射创建的对象,而且可以指定对象的生命周期, beanan生命周期 scope控制bean的生命周期,scope的取值5种取值: 在Spring 2.0之前,singleton和prototype两种; 在Spring 2.0之后增加另外三种:...
  • 一 首先接口不能实例化对象这是毋庸置疑的 !!!! 原因:1.实际语义是实例化一个实现该接口的匿名内部类,接口本身是用来抽象的,实例化接口没有意义。 2.实例化实际意义是在jvm的堆中开辟出一块内存空间,比如...
  • 转自:http://zhidao.baidu.com/question/397089741.html JAVA父类引用指向子类的对象什么意思?有什么作用? ...如下代码: ... 这就称父类的引用a 指向了子类的对象new B(),就是这个意思。...有什么用呢?
  • 面向对象与面向过程的本质的区别

    万次阅读 多人点赞 2018-01-10 20:19:04
    如果你很想搞明白面向对象什么,面向过程是什么,或者说二者之间的区别是什么,那么就花费一点时间来研读一下这篇博客,你一定会很大的收获的! 一、面向对象与面向过程的区别 面向过程就是分析出解决问题所...
  • Java什么叫面向对象

    万次阅读 多人点赞 2018-08-15 21:56:17
    世界上loli控,御姐控,女王控,所以句话就叫万物皆可控面向对象也是一样,万物皆对象 对象这个词你可以理解为一个总称,比如男人女人都叫人,蜡烛皮鞭高跟鞋都是道具,所以面向对象原本的意思是“都叫对象”,...
  • Car mycar; 上面Car 是我们自己定义的一个类 mycar则先可看作...能够这一作用的是什么呢?——构造函数。所以就了 Car mycar= new Car(); 当我们自己定义了与类同名的参构造函数时,假设参数类型是整型的,...
  • 什么是面向对象程序设计

    万次阅读 多人点赞 2019-08-22 11:10:04
    什么对象→3.什么是消息→4.什么是封装→5.什么是多态→6.面向对象的优点: 本文介绍 C++基础概念和知识。如果您想看其他语言(如 java)的语法,本文不涉及。 1.面向对象和面向过程区别 面向过程程序设计:...
  • spring实现了对象池,一些对象创建和使用完毕之后不会被销毁,放进对象池(某种集合)以备下次使用,下次再需要这个对象,不new,直接从池里出去来。节省时间,节省cpu.   转自度娘...
  • java中什么是类什么对象

    万次阅读 多人点赞 2016-09-12 11:31:44
    Java是一种面向对象的程序设计语言(Object Oriented Programming:OOP),面向对象的程序设计语言中类和对象的概念,那么它们在概念上到底有什么区别呢? 下面以java语言为例解释下什么是类,什么对象? 类...
  • java中什么是类?什么对象

    万次阅读 多人点赞 2018-06-03 19:29:55
    首先什么对象呢?可谓是万物皆对象对象是客观存在的事物,可以说任何客观存在的都是可以成为对象,一台电脑,一直钢笔,一个人,一辆轿车等等,都是可以成为对象。那么什么是类呢?类是对象的模子,具有相同属性...
  • jsp哪些内置对象? jsp共有以下9个内置对象: 1.request 客户端请求,此请求会包含GET/POST请求的参数 2.response 网页传回客户端的回应 3.pageContext 网页的属性是在这里管理 4.session 请求有关的会话期 5....
  • JS的对象与内置对象详细介绍

    万次阅读 多人点赞 2019-07-06 23:53:50
    JS里一句话叫万物皆对象(除了基本数据类型)。但是new String(’’)或者new Number()这种不属于基本数据类型,属于引用类型。 对象就是属性的无序集合。数组是有序集合。 创建对象的方法: 直...
  • Python中可迭代对象什么

    万次阅读 多人点赞 2019-06-30 22:59:56
    Python中可迭代对象(Iterable)并...__iter__方法的作用是让对象可以for … in循环遍历,getitem( )方法是让对象可以通过“实例名[index]”的方式访问实例中的元素。老猿认为这两个方法的目的是Python实现一个通用...
  • 面向对象和面向过程有什么区别

    千次阅读 多人点赞 2017-07-12 12:17:37
    以前学C语言和C++时提到过面向对象与面向过程,但是因为当时编程少,没什么经验,对它们的区别仅仅停留在字面上,其实压根没有明白。 最近被问:面向对象和面向过程的区别? 细想下,其实我真的不知道它们是什么...
  • JSP哪些内置对象,功能是什么

    万次阅读 2016-12-13 10:27:03
     pageContext对象的作用是取得任何范围的参数,通过pageContext对象可以获取JSP页面的out、request、response、session、application等对象,或者可以重新定向客户的请求等,较少使用 二、request服务器端取得...
  • java对象数组 创建对象数组,初始化对象数组

    万次阅读 多人点赞 2019-07-30 16:34:15
    当需要一个类的多个对象时,应该该类的对象数组来表示,通过改变下标值就可以访问到不同的对象对象数组的定义和使用: 对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。 对象数组的声明形式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,928,922
精华内容 1,971,568
关键字:

对象有什么用