面向对象和面向过程,是两种不同的处理问题的角度。
  面向过程更注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者(对象)、及各自需要做什么。
  比如:洗衣机洗衣服
  面向过程会将任务拆解成一系列的步骤(函数),1、打开洗衣机——>2、放衣服——>3、放洗衣粉——>4、清洗——>5、烘干
  面向对象会拆出人和洗衣机两个对象:
    人:打开洗衣服、放衣服、放洗衣粉
    洗衣机:清洗、烘干
  从以上例子能看出,面向过程比较直接高效,而面向对象更易于复用、扩展和维护。

面向对象的三大特征
封装:封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项
内部细节对外部调用不透明,外部调用无需修改或者关心内部实现
1.javabean的属性私有,提供getset方法对外访问,因为属性的赋值或者获取逻辑只能由javabean本身决定。而不能由外部胡乱修改。
2.orm框架
操作数据库,我们不需要关心链接是如何建立的、sql是如何执行的,只需要引入mybatis,调方法即可。
继承:继承基类的方法,并做出自己的改变和扩展。
子类共性的方法或属性直接使用父类的,而不需要自己再定义,只需要扩展个性化的。
多态:多态是同一个行为具有多个不同表现形式或形态的能力。基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。
多态存在的三个必要条件:继承,方法重写,父类引用指向子类对象

父类类型 变量名 = new 子类对象;
变量名.方法名();

无法调用子类特有的功能

public class Test {public static void main(String[] args) {show(new Cat());  // 以 Cat 对象调用 show 方法show(new Dog());  // 以 Dog 对象调用 show 方法Animal a = new Cat();  // 向上转型  a.eat();               // 调用的是 Cat 的 eatCat c = (Cat)a;        // 向下转型  c.work();        // 调用的是 Cat 的 work}  public static void show(Animal a)  {a.eat();  // 类型判断if (a instanceof Cat)  {  // 猫做的事情 Cat c = (Cat)a;  c.work();  } else if (a instanceof Dog) { // 狗做的事情 Dog c = (Dog)a;  c.work();  }  }
}abstract class Animal {  abstract void eat();  //Note:父类中没有work方法
}  class Cat extends Animal {  public void eat() {  System.out.println("吃鱼");  }  public void work() {  System.out.println("抓老鼠");  }
}  class Dog extends Animal {  public void eat() {  System.out.println("吃骨头");  }  public void work() {  System.out.println("看家");  }
}执行以上程序,输出结果为:吃鱼
抓老鼠
吃骨头
看家
吃鱼
抓老鼠

什么是面向对象?谈谈你对面向对象的理解相关推荐

  1. 什么是面向对象? 谈谈你对面向对象的理解

    面试官提问:什么是面向对象? 谈谈你对面向对象的理解 面试题拆解: 这道面试题对于工作时间不是很长的Java程序员来说,出现频率是比较高的. 那么到底什么是面向对象呢?讲面向对象之前,需要先聊一下面向 ...

  2. Java面试一百道题目(第一题)-什么是面向对象,谈谈你对面向对象的理解

    Java面试一百道题目(第一题) 1,什么是面向对象,谈谈你对面向对象的理解. 思路:用面向过程和面向对象做对比来突出什么是面向对象. 答:高级语言分为,面向对象语言和面向过程语言,面向过程语言,距离 ...

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

    对于刚接触JAVA或者其他面向对象编程语言的朋友们来说,可能一开始都很难理解面向对象的概念以及类和对象的关系. 面向对象 首先,一言不和先百度,得到如下定义: 一切事物皆对象,通过面向对象的方式,将现 ...

  4. 面向对象思想--谈谈你对面向对象的理解

    面向对象 面向对象编程,即OOP,面向对象的概念和应用已经超越了程序设计.软件开发领域,现在已经发展到了各个领域. 面向对象可以说是对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段的产物. ...

  5. python登录面向对象_python基础之面向对象

    面向对象编程 面向过程编程:根据业务逻辑从上到下写代码,主要突出在流程上 函数式编程:将某些功能封装在函数里,日后不用重复编写,仅调用函数即可 面向对象编程:对函数进行分类和封装,让开发"更 ...

  6. JS面向对象一:MVC的面向对象封装

    JS面向对象一:MVC的面向对象封装 MDNjavascript面向对象 面向对象(Object-Oriented) 面向对象里面向的意思是以...为主,面向对象编程既以对象为主的编程. 面向对象的一 ...

  7. [.net 面向对象编程基础] (13) 面向对象三大特性——多态

    [.net 面向对象编程基础] (13) 面向对象三大特性--多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...

  8. python面向对象生动讲解_Python面向对象语法精讲

    本专题的内容结构: 第一部分主要是:面向对象基础 第二部分主要是:面向对象进阶 第一部分的结构: unit1:面向对象编程模式: (1),面向对象编程思想 (2),面向对象的三个特征 (3),Pyth ...

  9. 笔记整理-信息系统开发基础-面向对象分析与设计-面向对象设计的基本任务

    面向对象设计的基本任务,把面向对象分析模型转化为面向对象的设计模型,具体包括以下任务:设计人员必须完成以下任务:设计用例实现方案.设计技术支撑设施.设计用户界面.精化设计模型. 面向对象的分析模型主要 ...

  10. 什么是对象,为什么要面向对象,怎么才能面向对象?

    一. 面向对象,这个对象到底是什么? 这个对象不是C#中的实例,C#中我们把一个类的实例也叫做对象,这种对象严格的说应该是面向对象的编程实现(OOP)中的对象,面向对象编程,也不是面 向类的实例编程. ...

最新文章

  1. VadR发布WebVR分析工具,为开发者提供用户数据分析
  2. JavaScript表单验证,输入中文时字符长度为2
  3. 关于SAP物流和供应链模块发展的一点思考
  4. 全国计算机等级考试题库二级C操作题100套(第61套)
  5. for循环中let,var 的经典面试题:for循环中 console.log(i)详解
  6. 12月29日云栖精选夜读 | SQL Server数据库漏洞评估了解一下
  7. sysvol共享没有出现的处理办法!
  8. Git和SourcesTree的安装
  9. 又一个程序员在工位上倒下了!
  10. 视频干扰现象及其原因分析
  11. mysql数据库工资管理系统_数据库课程设计—企业工资管理系统(java版完整代码).doc...
  12. 转:firefox os 框架解析
  13. 摄影曝光口诀_通过学习曝光元素来改善摄影
  14. 2017IT在线教育机构汇总
  15. (字节流与字符流)OutputStream字节输出流
  16. windows网站操作系统管理【1】
  17. wangeditor富文本编辑器使用过程中遇到的问题以及解决办法
  18. GB28181 协议 SIP
  19. 虚拟机设置共享文件夹
  20. 查找大于某个数的最小质数

热门文章

  1. android模拟器 vt,逍遥安卓模拟器怎么开启VT模式 VT虚拟化设置方法
  2. 第11章:使用Apriori算法进行关联分析(从频繁项集中挖掘关联规则)
  3. autojs各种插件以及教程模板
  4. Android/Linux USB HID驱动(即USB鼠标USB键盘等驱动)相关文件
  5. DJFocus是个什么东东
  6. (Codeforces800Div2)B. Paranoid String(思维/动态规划)
  7. 一个中年SAP自由职业者的2020年终总结
  8. win7+nfs文件服务器,win7 nfs服务器设置
  9. wordpress插件选择_如何选择2020年最好的WordPress托管(已比较)
  10. android 模拟物品移动