返学费网 > 培训机构 > 少儿编程培训中心

13081913316

全国统一学习专线 8:30-21:00

近年来关注面向方面编程的用户越来越多,小编整理了关于2分钟让你明白什么是面向对象编程,Spring 依赖注入怎么回事,还有面向方面编程是怎么回事,java语言在面向对象编程方面有哪些独特的特点?,什么是面向对象方面的接口编程?面试时问到,面向结构、面向数据、面向方面的程序设计各有什么特点??,供您参考

1.2分钟让你明白什么是面向对象编程

相信很多刚开始接触编程的小伙伴,对于什么是面向对象,什么是面向过程都是一脸懵逼的。网上关于这两个的回答真的很多,但是都有一个共同特点:------------不容易懂。让我们来看看某百科给出的定义:是不是听不懂??为了解决大家的疑惑,小编今天上网收集了一些资料,现在就简单通俗的为大家介绍一下到底什么是面向对象编程和面向过程编程一、先来两小段通俗解释面向过程(Procedure Oriented 简称PO :如C语言): 从名字可以看出它是注重过程的。当解决一个问题的时候,面向过程会把事情拆分成: 一个个函数和数据(用于方法的参数) 。然后按照一定的顺序,执行完这些方法(每个方法看作一个过程),等方法执行完了,事情就搞定了。面向对象(Object Oriented简称OO :如C++,JAVA等语言): 看名字它是注重对象的。当解决一个问题的时候,面向对象会把事物抽象成对象的概念,就是说这个问题里面有哪些对象,然后给对象赋一些属性和方法,然后让每个对象去执行自己的方法,问题得到解决。二、用3个例子说明两者的区别例子一: 问题: 洗衣机里面放有脏衣服,怎么洗干净?面向过程的解决方法:1、执行加洗衣粉方法;2、执行加水方法;3、执行洗衣服方法;4、执行清洗方法;5、 执行烘干方法;以上就是将解决这个问题的过程拆成一个个方法(是没有对象去调用的),通过一个个方法的执行来解决问题。面向对象的解决方法: 1、我先弄出两个对象:“洗衣机”对象和“人”对象 2、针对对象“洗衣机”加入一些属性和方法:“洗衣服方法”“清洗方法”、“烘干方法” 3、针对对象“人”加入属性和方法:“加洗衣粉方法”、“加水方法”4、然后执行人.加洗衣粉人.加水 洗衣机.洗衣服洗衣机.清洗洗衣机.烘干解决同一个问题 ,面向对象编程就是先抽象出对象,然后用对象执行方法的方式解决问题。例子二 : 打麻将例子 你 我 他 面向过程: 打麻将 (你,我,他) ---------解决问题 拆成一个动作,把数据丢进去 面向对象: 我.打麻将(你,他) or 你.打麻将(我,他) or 他.打麻将(我,你) ---------解决问题 抽象出对象,对象执行动作 。 例子三:最后在用一个网上常见的五子棋例子来说明一下:面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。三:面向过程与面向对象的优缺点:小编在看了@十四期_李光 博客上解释的非常通俗易懂,分享给大家用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。蛋炒饭制作的细节不说了,最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,则是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。蛋炒饭的好处就是入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的办法就是全部倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么香。到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,非要比个上下高低的话,就必须设定一个场景,否则只能说是各有所长。如果大家都不是美食家,没那么多讲究,那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组合出来任意多的组合,而且不会浪费。盖浇饭的好处就是‘’菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是”可维护性“比较好,”饭” 和”菜”的耦合度比较低。蛋炒饭将”蛋”“饭”搅和在一起,想换”蛋”“饭”中任何一种都很困难,耦合度很高,以至于”可维护性”比较差。软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。总结来说:面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对象易维护、易复用、易扩展面向对象 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 缺点:性能比面向过程低四、面向对象编程的特性三大基本特性:封装,继承,多态封装封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。继承继承,指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过 “继承”()和“组合”()来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用父类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力。多态多态,是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。五、基本原则:SPR, OCP, LSP, DIP, ISP单一职责原则SRP(Single Principle)是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来。开放封闭原则OCP(Open-Close Principle)一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。里式替换原则LSP(the Liskov Principle LSP)子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。依赖倒置原则DIP(the Inversion Principle DIP)具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要使用到A的功能,这个时候,B不应当直接使用A中的具体类: 而应当由B定义一个抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:这样就达到了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。接口分离原则ISP(the Interface Principle ISP)模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来看到这大家是不是对面向对象有了更多的了解呢,快掏出你的键盘new一个对象来感受一下面向对象编程的魅力吧。最后,老规矩,送上表情包,拜~~~~~注:本文相关内容来自CSDN @ 十四期_李光 @ X_Ming_H 及博客园 @ 韩亦乐如有侵权请联系。原文: 、

2.Spring 依赖注入怎么回事,还有面向方面编程是怎么回事

依赖注入,也称反转控制,IoC, DI,这些都是一回事,简单说起来就是Spring提供了一个Java Bean的处理器,通过读取xml配置文件或注解()来自动为你需要的的接口类型,实例化(也就是新建)对象,这样你的代码就不需要针对具体对象编程,而是抽象成接口来编写,实现部分可以与抽象部分分开,便于分层,并随时替换实现方式,这也叫做注入。面向方面编程,实际应该叫AOP,面向切面编程,这是Spring容器的另一大功能,它可以通过反射技术为你已经写好的代码自动加上一些通用功能,也是通过通过读取xml配置文件或注解()为依据来进行反射实现的,用到了JDK的反射或CGLib的反射,能够对方法的不同部分(如前置,后置,抛出异常,环绕等)加入代码,一般用于数据库的事务处理(数据库更新类事务前后一般要加, 之类的代码)或日志处理等等。

3.java语言在面向对象编程方面有哪些独特的特点?

面向对象:其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。 可移植性:就是在这个系统上作的程序经过一次编译后可以移植到别的系统上解释执行,只要经过简单的粘贴和复制就行了,不影响程序的效果安全性:在 iSeries 服务器上运行的大多数 Java(TM) 程序是应用程序,而不是 applet,所以“砂箱”安全性模型对它们不起限制作用。从安全性的观点看,Java 应用程序所受的安全性限制与 iSeries 服务器上的任何其它程序相同。要在 iSeries 服务器上运行 Java 程序,您必须对集成文件系统中的类文件具有权限。程序一旦启动,它就在该用户权限控制下运行。 您可以使用沿用权限来访问具有运行程序的用户的权限和程序拥有者权限的对象。沿用权限临时地将用户原先无权访问的对象的权限授予用户。并发性:JAVA支持多线程技术,就是多个线程并行机制,多线程是Java的一个重要方法,特别有利于在程序中实现并发任务.Java提供Thread线程类,实现了多线程的并发机制.然而,程序的并发执行必定会出现多个线程互斥访问临界资源的局面,因而并发系统解决的关键就是对临界资源的管理和分配问题,而在进行临界资源分配时有两方面需要考虑,即安全性和公平性.文中首先讨论了多线程并发系统中的安全性与公平性问题,指出安全性与公平性在并发系统中访问临界资源时的重要性.并通过火车行驶单行隧道的实例,演示各种条件下的行驶情况来进一步说明该问题.可视化:不好说,像vb这样的也是可视话的编成程序。

4.什么是面向对象方面的接口编程?面试时问到

面向接口编程就是一堆接口,通过接口规约对象的属性和方法,是面向对象一部分。面向接口本身就是面向对象的,无所谓区别,只不过面向接口的好处是耦合性低

5.面向结构、面向数据、面向方面的程序设计各有什么特点

有一只狗,又来了一只狗,加起来是两只狗,这是面向过程的有一只狗,它的年龄是五岁,他有两只耳朵,这是面向对象的你家养一群狗,你要找一批年龄5岁以上的来吃肉,这是面向数据的

如果以上内容没有帮到您,欢迎电话联系我们,或者联系在线客服咨询

温馨提示:为不影响您的学业,来校区前请先电话咨询,方便我校安排相关的专业老师为您解答
  • 作者最新文章
  • 在线报名
申请试听课程

只要一个电话
我们免费为您回电

姓名不能为空
手机号格式错误