如何理解面向对象

  1. 如何理解面向对象?

    什么是面向对象,面向对象其实就是一种设计模型。不用理解太多,这里不是最重要。

  2. 面向对象的基本特征如何理解?

    1)抽象:将相同事物抽象出来成为一种数据结构,或者是用类(面向对象),或者是用结构体(面向过程)比如KNN算法,求解测试样本的k个邻接点,这k个邻接点,甚至整个邻接点都可以抽象出来一种数据结构。在比如决策树算法中,构建决策树,由于一个决策树有多个结点,结点和结点之间互相生成。首先要抽象出结点的数据类型,这就是抽象。

    2)封装:封装的好处就是使离散的数据整体化,将离散的数据组织起来,利于管理。在使用的时候,一个是使用方面,二个语意理解容易。比如说我们传参数的时候,你传个对象,就比传多个参数就好,因为你要调用的是多个参数。例如在hibernate中经常把取出的记录,封装到javabean中,再或者Struts中,经常讲输入的数据封装到表单中,都是体现了封装的思想。

    3)继承:继承体现了代码的复用性提高了,继承体现了is a的特性,比如吧,人和老人,儿童,老人和儿童  all is people    ,接口体现了 like a的特性,比如猫和狗,他们都会睡觉,他们之间有相同的行为,就可以理解他们之间很像。

    4)多态:是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。在传参数的时候,可以接受多种相关类型的参数。

  3. 面向对象中一些基本概念和术语理解

    可复用性(可重用性):;举个例子,在j2ee中,经常会出现多个service调用一个dao,那个dao的复用性就得到了大大的提高了。这样的话,分层很好,维护更加容易。

  4. 设计模式如何理解?

    1)常见的基本原则,这些原则具有指导性,后期的设计模式在设计的时候,它都遵循了一定的规范,但千万不要为基本原则所累,了解下,体会下,领悟下,就可以了。

    2)理解真正的设计模式,有助于对网站,android,各种开发框架,甚至是大数据各个平台和软件维护都有更好的理解,真正理解了它,如果在懂算法的话,你就可以真正的去有读源码的功底了,如果达到这样的话,你的编程水平,就不是普通级别的人了。

时间: 2024-08-29 16:03:32

如何理解面向对象的相关文章

全面理解面向对象的 JavaScript

对象的上下文依赖 var str = "我是一个 String 对象 , 我声明在这里 , 但我不是独立存在的!" var obj = { des: "我是一个 Object 对象 , 我声明在这里,我也不是独立存在的." }; var fun = function() { console.log( "我是一个 Function 对象!谁调用我,我属于谁:", this ); }; obj.fun = fun; console.log( this

全面理解面向对象的JavaScript

转载:http://justcoding.iteye.com/blog/2019293 原文:http://www.ibm.com/developerworks/cn/web/1304_zengyz_jsoo/index.html?ca=drs-#major6 前言 当今 JavaScript 大行其道,各种应用对其依赖日深.web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学习和深入理解.所以,经常出现的情况是,

深入全面理解面向对象的 JavaScript

深入全面理解面向对象的 JavaScript (原著: 曾 滢, 软件工程师, IBM,2013 年 4 月 17 日) JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或者只是部分具备一些面向对象的特征.本文将回归面向对象本意,从对语言感悟的角度阐述为什么 JavaScript 是一门彻底的面向对象的语言,以及如何正确地使用这一特性. 前言 当今 JavaScript 大行其道,各种应用

iOS runtime探究(一): 从runtime开始理解面向对象的类到面向过程的结构体

你要知道的runtime都在这里 转载请注明出处 http://blog.csdn.net/u014205968/article/details/67639205 本文主要讲解runtime相关知识,从原理到实践,由于包含内容过多分为以下五篇文章详细讲解,可自行选择需要了解的方向: 从runtime开始: 理解面向对象的类到面向过程的结构体 从runtime开始: 深入理解OC消息转发机制 从runtime开始: 理解OC的属性property 从runtime开始: 实践Category添加属

面向对象编程的弊端是什么? 深入理解面向对象

现时C++可以说是支持OOP范式中最为常用及高性能的语言.虽然如此,在C++使用OOP的编程方式在一些场合未能提供最高性能.[1]详细描述了这个观点,我在此尝试简单说明.注意:其他支持OOP的语言通常都会有本答案中提及的问题,C++只是一个合适的说明例子. 历史上,OOP大概是60年代出现,而C++诞生于70年代末.现在的硬件和当时的有很大差异,其中最大的问题是内存墙. 内存墙,指的是内存性能严重限制CPU性能发挥的现象.在过去的20多年中,处理器的性能以每年大约55%速度快速提升,而内存性能的

第三节课、流程控制语句及理解面向对象的概念

一.单分支语句 |- if(逻辑表达式) 例子: if(3 > 2) { // 代码语句1 } // 代码语句2 二.多分支语句 |- if(逻辑表达式1) 例子: if(逻辑表达式1) { // 代码语句1 } else if(逻辑表达式2) { // 代码语句2 } else if(逻辑表达式n...) { // 代码语句n... } 三.循环语句 (1).while语句 |- 例子: int i = 0: while(i < 10) { System.out.println("

从一些简单代码实例彻底理解面向对象编程思想|OOP本质是什么?

从Rob Pike 的 Google+上的一个推看到了一篇叫<Understanding Object Oriented Programming>的文章,我先把这篇文章简述一下,然后再说说老牌黑客Rob Pike的评论. 先看这篇教程是怎么来讲述OOP的.它先给了下面这个问题,这个问题需要输出一段关于操作系统的文字:假设Unix很不错,Windows很差. 这个把下面这段代码描述成是Hacker Solution.(这帮人觉得下面这叫黑客?我估计这帮人真是没看过C语言的代码) 1 2 3 4

深入理解面向对象的三大基本特征

我们都知道面向对象有三个基本特征:封装,多态和继承. 封装: 我先来援引一 位网友写的段子:基本的变量已经不再浮游于一大段一大段的程序中了,它们已经放弃了(其实是程序员不用这种方式了)这种自由自在的存在方式,而是安稳的寄 居于庞大而蹒跚的“对象”内部,与外界隔开来,通过迂回曲折的间接途径与外部世界联系和通信.而这些对象,就是它们这些基本变量的生存机器! 在面向过程的开发中,变量被暴露在整个程序中,不小心的一个修改就可能导致整个程序出错. 所以封装有利于我们让自己的程序更健壮.这个大家很好理解.

第二章:理解面向对象

1.面向对象三大特性:继承.封装.多态.    对象.类.消息 OOA---->OOD----->OOP OOA OOD需要用到:UML(统一建模语言) 2.结构化语言:C     结构化开发方法:功能为出发点(面向数据流)     函数代表功能 面向对象语言:java   面向对象开发方法(可重用性.可扩展性.可维护性) 面向对象语言:更接近自然语言,主.谓.宾 3.程序基本结构:顺序.选择.循环.     任何算法都是由这三种基本结构组合而成的! 函数:唯一的入口和唯一的出口. 4.面向对