程语言为程序=算法+数据;面向对象编程语言为程序=对

程语言为程序=算法+数据;面向对象编程语言为程序=对

ID:34960690

大小:174.20 KB

页数:23页

时间:2019-03-15

程语言为程序=算法+数据;面向对象编程语言为程序=对_第1页
程语言为程序=算法+数据;面向对象编程语言为程序=对_第2页
程语言为程序=算法+数据;面向对象编程语言为程序=对_第3页
程语言为程序=算法+数据;面向对象编程语言为程序=对_第4页
程语言为程序=算法+数据;面向对象编程语言为程序=对_第5页
资源描述:

《程语言为程序=算法+数据;面向对象编程语言为程序=对》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java程序员面试宝典(重点有标记推荐初级学者认真看最后一道面试题我几回笔试都看到了类此的必考题哦)面向对象面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看做是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心、以算法为驱动的话,面向对象的编程语言则是以对象为中心,以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。所有面向对象编程语言都支持3个概念,即封装、多态性和继承

2、,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法连在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。“这个世界是由什么组成的?”这个问题如果让不同的人来回答会得到不

3、同的答案。如果是一个化学家,他也许会告诉你:“还用问吗?这个世界是由分子、原子、离子等化学物质组成的”。如果是一个画家,他也许会告诉你:“这个世界是由不同的颜色所组成的”。但如果让一个分类学家来考虑问题就有趣多了,他会告诉你:“这个世界是由不同类型的物与事所构成的”。好!作为面向对象的程序员,我们要从分类学家的角度去考虑问题!是的,这个世界是由动物、植物等组成的。动物又分为单细胞动物、多细胞动物、哺乳动物等,哺乳动物又分为人、大象、老虎……就这样分下去了!现在,从抽象的角度,我们给“类”下个定义吧!我的意思是,从抽象的角度,你回

4、答我“什么是人类?”首先让我们来看看人类所具有的一些特征,这个特征包括属性(一些参数、数值)及方法(一些行为,他能干什么)。每个人都有身高、体重、年龄、血型等一些属性。还有人会劳动、人都会直立行走、人都会用自己的头脑去创造工具等方法。人之所以能区别于其他类型的动物,是因为每个人都具有人这个群体的属性与方法。“人类”只是一个抽象的概念,它仅仅是一个概念,它是不存在的实体。但是所有具备“人类”这个群体的属性与方法的对象都叫人。这个对象“人”是实际存在的实体。每个人都是人这个群体的一个对象。老虎为什么不是人?因为它不具备人这个群体的属

5、性与方法,老虎不会直立行走,不会使用工具等,所以说老虎不是人。由此可见,类描述了一组有相同特性(属性)和相同行为(方法)的对象。在程序中,类实际上就是数据类型,例如,整数、小数等。整数也有一组特性和行为。面向过程的语言与面向对象的语言的区别就在于,面向过程的语言不允许程序员自己定义数据类型,而只能使用程序中内置的数据类型。而为了模拟真实世界,为了更好地解决问题,我们需往往要创建解决问题所必需的数据类型。面向对象编程为我们提供了解决方案。以下的考题来自真实的笔试资料,希望读者先不要看答案,自我解答后再与答案加以比对,找出自己的不足

6、。11.1面向对象的基本概念面试例题1:对象与实例有什么区别?解析:在Java的内存分配中,对象和实例是不同的,前者分配在内存堆里,后者分配在堆栈里,至于为什么要这样分,参考一下其他的资料。对象是不变的东西,它是对客观事物的抽象,实例是对操作对象的引用,你不能直接操作对象。答案:对象和实例从宏观的角度看,区别是:对象是同类事物的一种抽象表现形式,而实例是对象的具体化,一个对象可以实例化很多实例,对象就是一个模型,实例是照着这个模型生产的最终产品。实际上就是这样,一个对象可以实例化N个实例。就像根据一个模型可以制造多个实际的产品一

7、样。从内存分配的角度来看,对象是保存在堆中的,而实例是存储在栈中的,实例其实只是对象的一个引用,也就是指向对象的指针。面试例题2:Java中所有的类都继承了java.lang.Object类,而在C++中没有像java.lang.Object这样的类,这是为什么呢?都是面向对象,Java这样做有什么好处呢?解析:Java采用的是单根结构,所有的类都继承了java.lang.Object类。对于Java这种纯面向对象的语言来说,这种设计具有很好的灵活性,比如对垃圾收集来说很有利,所有的类都具有java.lang.Object类具有

8、的方法等。C++没有更多这样的方法,大概是为了向后兼容。向C兼容,满足它设计上最大的灵活性。答案:C++的特点是指针,一个指针可以指向任何的对象、结构、基本类型、函数。Java没有指针类型,所以Java用Object基础类的共同特征来实现所有对象类型之间的转换。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。