Java面向对象程序设计中实现软件可重用性的最重要手段是什么机制
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
1.什么是面向对象技术?面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。
它具有抽象性、封装性、继承性及多态性。
2.面向对象与面向过程程序设计有什么不同?面向对象与面向过程程序设计有如下不同:(1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。
函数与数据是否分离 (2)面向过程程序设计方法以功能为中心来设计功能模块,难于维护;而面向对象程序设计方法以数据为中心来描述系统,数据相对于功能而言具有较强的稳定性,因此更易于维护。
(3)面向过程程序的控制流程由程序中预定顺序来决定;面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际需要。
预定顺序;由运行时各种事件的实际发生来触发 (4)面向对象程序设计方法可以利用框架产品(如MFC,Microsoft Foundation Classes)进行编程。
面向对象可利用框架 面向对象和面向过程的根本差别,在于封装之后,面向对象提供了面向过程不具备的各种特性,最主要的,就是继承和多态。
3.面向对象技术有哪些优点?面向对象技术具有程序结构清晰,自动生成程序框架,实现简单,可有效地减少程序的维护工作量,代码重用率高,软件开发效率高等优点。
4.面向对象技术中的封装性有何优缺点?如何克服这些缺点?封装将对象有关的数据和行为封装成整体来处理,使得对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。
另一方面,当进行修改对象内部时,由于只有少量的外部接口对外提供服务,因此同样减小了内部的修改对外部的影响。
如果一味地强调封装,对象的任何属性都不允许外部直接存取,则要增加许多没有其他意义、只负责读或写的行为。
这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。
为了避免这一点,在程序的具体实现过程中应使对象有不同程度的可见性,进而与客观世界的具体情况相符合。
面向对象的特点是:封装,多态,继承。
其中多态有分为重载和重写。
面向对象的编程思想更加接近现实的事物。
有这样几点好处:1、是编程更加容易。
因为面向对象更接近于现实,所以你可以从现实的东西出发,进行适当的抽象。
2、在软件工程上,面向对象可以使工程更加模块化,实现更低的耦合和更高的内聚。
3、在设计模式上(似乎只有面向对象才设计到设计模式),面向对象可以更好的实现开-闭原则。
也使代码更易阅读。
相对而言,面向过程的程序设计是面向对象程序设计的基础。
面向对象的程序里面一定会有面向过程的程序片断的5.为什么要应用继承机制? 客观事物既有共性,也有特性。
如果只考虑事物的共性,而不考虑事物的特性,就不能反映出客观世界中事物之间的层次关系。
抽象机制是考虑事物的共性,继承机制是考虑事物的特性,这样才能完整地描述客观世界的层次关系。
继承能使软件模块具有可重用性、独立性,缩短软件开发周期,提高软件开发效率,同时使软件易于维护。
6.C++对多态性的支持体现在哪些方面?C++的多态性分为编译时多态和运行时多态。
编译时多态是指在程序的编译阶段由编译系统根据参数确定与哪个同名的函数相联系;运行时多态是指在程序的运行阶段才根据产生的信息确定需要调用哪个同名的函数。
C++通过函数重载和运算符重载实现编译时多态,通过继承和虚函数来实现运行时多态。
7.目前常用的面向对象程序设计语言有何异同? 目前常用的面向对象程序设计语言有C++、Java、Visual Basic等。
C++是混合型面向对象程序设计语言,继承并改进了C语言,是一种既支持面向对象又支持面向过程的程序设计方法。
Java是纯面向对象程序设计语言,从C++发展而来。
C++和Java均支持面向对象技术的基本概念和基本特征,如封装、类、构造函数、析构函数、继承、多态等。
C++与Java语法描述有相同之处,也有不同之处。
如基本结构语句的语法大致相同,而类定义的语法等方面则不相同。
此外还有以下不同:(1)C++有运算符重载机制,而Java没有此特性;(2)C++支持多重继承,而Java只支持单重继承;(3)C++通过构造函数创建对象,可以直接使用指针来操作对象的成员,而Java通过new运算符创建对象,通过new运算符返回的对象引用来使用对象,而不是直接操作指针;(4)C++程序要显式地释放所分配的内存,而Java具有内存垃圾收集机制,自动管理内存,不需要显式释放所分配的内存。
Visual Basic继承了BASIC语言所具有的语法简单、容易学习、容易使用、数据处理能力强的特点,又引入了面向对象、事件驱动的编程机制和可视化程序设计...
JAVA是什么意思?
展开全部 “JAVA”是一种可以撰写跨平台应用软件的面向对象的程序设计语言。
JAVA简介: Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平***立与可移植性、多线程、动态性等特点。
Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等JAVA语言特点:Java语言具有简单性面向对象、分布性、编译和解释性、稳健性、安全性、可移植性、高性能、多线索性、动态性等特点。
...
程序设计中面向对象指的什么
1、面向对象编程是一种很重要的编程思想和软件工程方案,最典型的语言是C++,其次JAVA,.NET等都采用了面向对象编程思想,而象C语言则是典型的面向过程编程2、程序设计中面向对象指的有两方面:采用面向对象语言;采用面向对象的软件工程思想 3、更多交流参考我空间主页有关文章
在线等,急。
。
。
。
Java判断题
判断题 1. JAVA能够进行多线程与网络程序设计。
(T )2. 线程是一个进程内可以并行执行的单位。
(F ) (应该是那个线程抢到CPU就是那个线程运行)3. 抽象类可以直接被实例化,非抽象类不可以直接实例化。
(F )4. JAVA程序中一个汉字和一个英文字母占的字节数相同 (F )5. bool是一个JAVA语言关键字。
(F )(boolean才是)6. JAVA是一跨平台的语言。
(T ) 7. JAVA中一类只能继承一个类,实现一个接口。
( F)8. 线程是一个进程内可以并行执行的单位。
(F )9. NULL是一个JAVA语言关键字。
( F)(小写的null是关键字)10. JAVA命名规范中,方法名与变量名首字母要求小写。
( T)11. JAVA命名规范中,类名首字母要求大写。
( T) (每个单词的首字母大写)12. JAVA类之间采用的单一继承,Object类是所有类的根类。
(F )(父类和根类有什么区别?)13. JAVA中一个类只能实现一个接口,但可以继承多个类。
(F )(相反)14. JAVA是一种面向对象程序设计语言,具有跨平台特性。
( T)15. 一个JAVA文件中最多只能有一个public类。
( T)16. 一个JAVA源文件中可以定义多个类,但最多只能有一个类为public类。
(T )17. 一个Java源文件中只能有一个类,且其类名要与文件名相同。
( F)(多个类)18. 一个抽象类中只能包含抽象方法。
( F) (至少一个抽象方法)19. 抽象类不能直接被实例化,但可以定义抽象类变量,用抽象类的子类实例来给其赋值。
(T )20. integer是一个JAVA语言关键字。
( F)(int 才是)21.一个JAVA类最多只能实现一个接口。
( F )22.JAVA语言没有垃圾回收机制,需要程序手动回收内存。
( F )23.JAVA采用UNICODE编码,char数据类型占两个字节。
( T )24.JAVA源程序编译后生成字节码(.class文件),程序需要在JAVA虚拟机中运行。
(T)25.最终类(final)不能派生子类,最终方法不能被覆盖。
( T )26.String类型的对象其字符串内容不可改变。
( T )27.可以把任何一种数据类型的变量赋给Object类型的变量。
( T )28.JAVA语言具有异常处理、指针、多线程等特性。
( T )可能我写的有些还是错的,请指正
什么是面向对象编程
前言:面向对象程序设计(Object-Oriented Programming,以下简称OOP)是一种起源于六十年代的Simula语言,发展已经将近三十年的程序设计思想。
其自身理论已经十分完善,并被多种面向对象程序设计语言(Object-Oriented Programming Language,以下简称OOPL)实现。
如果把Unix系统看成是国外在系统软件方面的文化根基,那么Smalltalk语言无疑在OOPL领域和Unix持有相同地位。
由于很多原因,国内大部分程序设计人员并没有很深的OOP以及OOPL理论,很多人从一开始学习到工作很多年都只是接触到c/c++,java,vb,delphi等静态类型语言,而对纯粹的OOP思想以及作为OOPL根基的Smalltalk以及动态类型语言知之甚少,不知道其实世界上还有一些可以针对变量不绑定类型的编程语言。
而这些对比却是深刻理解OO理论的重要部分,而国内这方面的资料也为数不多。
故把自己的一些OO学习心得写下来做为一个系列文章(一共三篇,第一篇描叙OOP的一些基本但容易被误解的理论,第二篇主要说明各种OOPL演化和发展以及对于OOP理论的支持,第三篇主要是说模式和组件在OOP中的地位以及展望OOP的未来),由于文章描叙的只是自己对于OOP/OOPL的理解,错误以及浅薄之处在所难免,只是希望对大家能起到抛砖引玉的作用。
JAVA是什么软件?主要是干什么用的?
它是个面向网络的程序设计语言,用来让程序员创建应用程序,这些应用程序可以通过网络下载,而且可在任何计算平台上安全地运行。
如果再加上万维网和公司内部网体系,你将会拥有一个标准的网络计算环境,Java作为一个分布式的,面向对象的程序设计语言,可以让位于任何地方的任何计算机应用网络上的应用程序。
如果在商业角度看待Java,Java是个时髦话。
同不少已经有20年历史的其他程序设计语言相比,Java吸收了计算机科学领域的各种最新成果,另外一方面,由于Java还比较年轻,它缺少诸如Visual Basic 或C++那样的丰富的编程工具的支持。
同C++一样, Java是个面向对象的语言,这就意味着软件可以以部件的形式编制,为了满足某种任务,软部件可以互相配合。
运行Java,不必非得在网络环境中进行,Java同其他传统的诸如COBOL或 Basic这样的程序设计语言一样,可以创建独立运行的应用程序。
只不过Java对互联网上的应用开发更拿手。
Java适宜于互联网的开发应用,其中一个原因是它使用了虚拟机,虚拟机是个用来解释Java指令的软件包,可以让Java在任何机器上运行,比如有运行在Mac或 UNIX下的虚拟机软件包。
虚拟机并不是Java语言本身,它是个为特定机器编写的解释器软件。
Java的虚拟机策略就相当于世界语,这是个人造的国际语言,目的是使得不同语言之间的翻译和沟通更加容易。
要称作一个通用的计算机语言,Java是最适合不过的,这意味着它可以在所有的计算机上运行,(尽管需要为各种机器编写Java虚拟机软件),可以根据需要提供软部件,并且具有内在的安全机制。
用Java编写的操作系统,称为JavaOS,是个基于语言的操作系统,它看起来似乎没有机会来占据PC市场。
但是它为Microsoft Windows和MacOS未来的发展提供了线索。
它也许将来会应用到各种仪器设备中,包括电视遥控器和温控器。
基于网络的内容供应商对Java技术很感兴趣,因为它增加了交互性和动画功能,这是吸引观众的关键因素。
对于软件商来说, Java有希望可以让人们采用租用软件的方式,诸如字处理器或者电子表格软件,而无需购买软件,这就改变了目前的商业模式。
Java也使得网络计算机成为现实,无须硬盘的,价值500美元的PC 将可以取代Wintel 结构的计算机。
所有这一切都显出Java的重要性,它的支持者把它视作对付微软和盖茨的最后的和最好的希望,这就是为什么一些人对Java表现出狂热的崇拜的原因。
JAVA的技术特点是什么?
Java产生的历史与现状 Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。
开始,准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新的语言Oak(Java的前身),Oak是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但结果是被SGI打败。
可怜的Oak几乎无家可归,恰巧这时MarkArdreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官ScottMcNealy的支持,触发了Java进军Internet。
Java的取名也有一个趣闻,有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。
1、Java的现状 Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发,它的平台无关性直接威胁到Wintel的垄断地位。
一时间,\"连Internet,用Java编程\",成为技术人员的一种时尚。
虽然新闻界的报导有些言过其实,但Java作为软件开发的一种革命性的技术,其地位已被确立,这表现在以下几个方面:1.计算机产业的许多大公司购买了Java的许可证,包括IBM,Apple,DEC,Adobe,SiliconGraphics,HP,Oracel,Toshiba,以及最不情愿的Microsoft。
这一点说明,Java已得到了工业界的认可。
2.众多的软件开发商开始支持Java的软件产品。
例如:Borland公司正在开发的基于Java的快速应用程序开发环境Latte,预计产品会在1996年中期发布。
Borland公司的这一举措,推动了Java进入PC机软件市场。
Sun公司自己的Java开发环境JavaWorkshop已经发布。
数据库厂商如:Illustra,Sysbase,Versant,Oracle都在开发CGI接口,支持HTML和Java。
今天是以网络为中心的计算时代,不支持HTML和Java,应用程序的应用范围只能限于同质的环境(相同的硬件平台)。
3.Intranet正在成为企业信息系统最佳的解决方案,而其中Java将发挥不可替代的作用。
Intranet的目的是把Internet用于企业内部的信息系统,它的优点表现在:便宜,易于使用和管理。
用户不管使用何种类型的机器和操作系统,界面是统一的Intrnet浏览器,而数据库、Web页面、应用程序(用Java编的Applet)则存在WWW服务器上,无论是开发人员,还是管理人员,抑或是用户都可以受益于该解决方案。
Java语言正在不断发展和完善,Sun公司是主要的发展推动者,较通用的编译环境有JDK(JavaDevelopKit)与JWS(JavaWorkshop)。
还有很多其他公司正在开发Java语言的编译器与集成环境,预计不久Java语言的正确性与效率都将会提高,用户用Java编程和现在用C++编程一样方便。
2、Java语言的特点 Java到底是一种什么样的语言呢?Java是一种简单的面象对象的分布式的解释的健壮的安全的结构中立的可移植的性能很优异的多线程的动态的语言。
3、简单 Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。
Java语言的简单性主要体现在以下三个方面:1.Java的风格类似于C++,因而C++程序员是非常熟悉的。
从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术。
2.Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。
3.Java提供了丰富的类库。
4、面向对象 面向对象可以说是Java最重要的特性。
Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。
Java支持静态和动态风格的代码继承及重用。
单从面向对象的特性来看,Java类似于SmallTalk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。
5、分布式 Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。
因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。
为分布环境尤其是Internet提?copy;动态内容无疑是一项非常宏伟的任务,但Java的语法特性却使我们很容易地实现这项目标。
6、健壮 Java致力于检查程序在编译和运行时的错误。
类型检查帮助检查出许多开发早期出现的错误。
Java自已操纵内存减少了内存出错的可能性。
Java还实现了真数组,避免了覆盖数据的可能。
这项功能特征大大缩短了开发Java应用程序的周期。
Java提供Null指针检测数组边界检测异常出口字节代码校验 7、结构中立 另外,为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。
只要有Java运行系统的机器都能执行这种中间代码。
现在,Java运行系统有Solaris2.4(SPARC),Win32系统(Windows95和WindowsNT)等.Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。
8、安全 Java的安全性可从两个方面得到保证。
一方面,在Java语言里,象指针和释...
JAVA初学问题!
先说一下面向过程和面向对象,这是两种思想,它们都能达到用程序来完成一件事情的能力。
只不过思维方式不一样而已。
面向过程是把一件事一项工程分解成为一个个小的功能,用一个个函数来实现.面向对象是把事情看成是一个个小的对象组成的,或者说一个个小部分组成的,这些对象之间的相互关系,构成了整个项目.在面向对象的思想中,万物皆对象,我是,你是,他也是。
而"类",就是对象的抽象或者说是概括。
比如,我你他都可以概括为人类。
总的来说,类是抽象的虚的,而对象是一个个活生生的具体的事物。
人是一个类,我你他就是对象。
一般的面向对象程序设计方法都是先设计一个类,然后由这个类产生一个对象。
之后是对这个对象进行相关操作。
要说明一点:操作是对对象进行的,没有对象就无所谓操作。
下面说说如何设计一个类,类是有一些属性和功能封装起来的。
在面向过程的思想里,一个程序一般都是由一个个函数组成的,这些函数之间相互调用,就形成了一个完整的程序,解决了一个问题。
它的基本结构是:函数一(){……;}函数二(){……;}……主函数(){……;}但是在面向对象的思想中,是把这些都封装起来,形成一个类。
class 类名{ 函数一() { ……; } 函数二() { ……; } ……}然后由这个类产生一个对象,比如:我们把一个类的类名起为 student那么产生对象的方法就是: student s1;这里s1是一个对象,产生了这个对象以后,才可以进行相关操作。
操作方法如: s1.函数一();等等。
具体的细节在此就不说了,此文只说思想。
说得再明白一点就是,把具体的实现过程放在类里面,之后产生一个对象,有对象调用相关操作。
犹如把面向过程里的函数都封装进了类里,然后再由对象来操作。
一个类主要就是封装,一般把它当成一个模块,在需要的时候可以让其他类调用。
类是一个抽象,一个概括,把一些有共同特征的东西抽象化,提出它们的公共部分,封装在一起。
关于封装,上文已经说过,就是把一些属性和功能装在一个容器里面。
下面我用一个游戏来解说一下:假设我们要做一个小游戏,类似于网游里面的打怪,为简单起见,认为怪不打人,只让人打,他的血不断减少,直到死亡。
把所有怪物的共同特征抽象出来,于是我们得到一个类:怪物class 怪物{ char 怪物名; int 血; 怪物(怪物名n,血n) /*构造函数*/ { 怪物名=怪物名n; 血=血n; } 被打函数() { 血减少; } 判断函数() { if (血==0) printf("你胜利了!"); } 玩游戏() { while (血 > 0) { 被打函数(); 判断函数(); } }} 这样,就定义了一个怪物类,他有属性:怪物名、血,有功能:构造、被打、判断根据这个,就可以产生对象了。
一个类可以产生任意多的对象,这些对象根据构造函数的不同来区别。
我们先继续来写我们的程序main主函数void main(){ /******产生对象******/ 怪物 怪物1("狼",5000); 怪物 怪物2("虎",8000); 怪物 怪物3("蛇",3000); /**有了几个对象以后才能开始我们的游戏**/ 怪物1.玩游戏(); 怪物2.玩游戏(); 怪物3.玩游戏(); } 再这个主函数中,我们建立了三个对象,它们共用一个类。
可以看到,类相当于一个组件,一个模块,我们在需要的时候只要建立它的对象,就能实现他所封装的功能。
这就是面向对象的优点,可以重用,不必每一次用到时都重写。
说了这么多,自己感觉还是没说明白,真有点只可意味不可言传的感觉。
其实要是书看的多了,真正认真地写上几个东西,就能够理解了,无形之中就会有感觉的。
转载请注明出处51数据库 » 什么机制是java面向对象程序设计中实现