Java中面向对象到底是什么意思
发布网友
发布时间:2022-04-21 13:46
我来回答
共9个回答
热心网友
时间:2022-04-03 13:52
一.面向对象:
1.何谓对象:在面向对象程序设计中,我们将问题空间中的元素以及他们在方案空间中的的表示物称作对象(object)
Alan Kay总结了smalltalk中对象的5大基本特征:
所有的东西都是对象。
程序是一大堆对象的集合,他们通过消息传递,各个对象之间知道要做些什么。
每个对象都分配有自己的存储空间,可容纳其他对象。
每个对象都有一个类型。
同一类的所有对象能接收相同的消息。
-----而所有的编程语言的最终目的是提供一种抽象方法----
2.对象的接口:我们向对象发出请求是通过它的接口定义的,对象的类型决定了它的接口形式。
3.OOP中唯一关心的:就是接口是什么,就像汽车的发动机一样,我们不必要知道它的结构是什么,只要它能工作就行了。所有的程序是由一定的属性(数据)和行为(方法)组成的,不同的对象访问通过函数调用来完成,对象间的所有交流都是通过方法调用,通过对封装数据对象,很大程度上提高复用率。
4.对象的3个主要特征:
behavior—说明这个对象能做什么。
State—当对象施加方法时对象的反映。
Identity---与其他相似行为对象的区分标志,每一个对象有唯一的indentity, 而这3者是相互影响的。
5.面向对象中最重要的思想就是类,类是模板是蓝图,从类中构造一个对象,即创建了一个类的实例。(类好比一个建材市场,其中有许多子类--各种各样的装饰材料,而我们装修自己的房子就要选择我们需要的材料,(为了建立我们自己的程序,我们必须选 择我们需要的类)这个比喻可以很形象的解释类是什么。
6.类之间的关系:
依赖关系:use-a A类中的一个方法操作了另一个类中的对象。
聚合关系:has-a A类中的对象包含B类的对象。
继承关系:is-a A继承了B类,此时A类不仅有了B类的方法,还加入了自己的方法。以便我们创建我们自己需要的对象。
Java中定义的每一个类都必须继承另一个类,使用关键字extends,如果一个类在定义中不现实使用关键字extends,这个类就会隐式继承Object类。Object类又叫根超类,或基类。,我们从根超类继承来的叫子类。Java中每个类都是根超类的子类。
8.接口(interface)规定了可对特定的对象发出哪些请求。
9.继承=重新使用接口:创建出一个数据类型后,当需要新建立一个数据类型去实现相同的功能,是很没有意义的一件事,此时对其克隆后,再根据情况改进实现自己的目的就是继承。
10.封装:就是把数据和行为结合在一起在一个包中,并对对象使用者隐藏数据的实现过程。Java用3个关键字来设置边界,从而进行对数据的隐藏。Public(共有)的定义任何人都可使用.private(私有)意味着除你自己,类型创建者及那个类型的内部函数成员可以访问外其他任何人使用都会产生错误。Friendly(友好)
意味在包(package)中是可以访问的。(以上过程也可叫方案隐藏)
11.引用(Handle)操控对象:
当创建一个引用时必须要对其进行初始化
例: String s=”happy”(未建立连接)
String s=new string(“happy”)与一个新的对象连接使用new 。此句建立了一个引用,并且连接引用并初始化对象 赋值字符串“happy”.
12.对象的创建及存在时间:数据存放的地点
1:寄存器-速度快,数量少,在cpu内部,我们对寄存器没有控制权。
2:堆栈:驻留长规内存中,堆栈指针下移建立新的内存,上移释放内存。
3:堆:常用内存池,保存对象,有极大的灵活性,java的数据就存放在此,但是要以时间及效率为代价。Java的对象建立是在程序运行时才决定。而c++是在设计时建立对象。
对象的生存时间(lifetime)java提出的垃圾收集器可以很好的发现无须再用的对象,使用GC(grabage collector)垃圾收集器。清除对象,释放内存。
为此我们就要付出一定的运行期的开销。
13.在此我们就会有这样一个印象,一个程序只是一系列对象的集合,他们的方法将其他对象作为自己的变量使用.
14.主要类型: java的主要类型有:boolean,char,byte,short,int,long,float,double,void.这些主类型的大小都不随机器的结构变化而变化,提供了java很好的可移植性.
15.字段方法:字段又叫数据成员,成员函数又叫方法,java的全部工作就是定义类,制作累得对象及发送消息.
16.一个程序只是一系列对象的集合,他们的方法将其他的对象作为自己的变量使用,而且将消息发给那些对象.
17.名字的可见性:为了使名字不重复,作者可以定义自己的库,一般用自己域名的倒写形式 如: COM.:Leeak.utility.foidles
18.static关键字:即使没有创建对象,也需要一愕能调用的方法,此时可以使用static
19.java.lang默认自动的导入每个java程序中
20.OOP中对象使对属性和方法的封装,对象具有信息的隐蔽的性质,对细节的隐藏,对象只需要知道去这样做,而不知道如何做的细节,类的方法应谨慎控制对java数据的访问,可以用get读取方法,用set修改方法.
21:pakage:Java API中每个类和接口属于一个特定的包,包实际上市对类和接口进行组织的目录结构,提供了一种软件复用机制.
22.创建可复用的类得步骤:1.定义一个public类
2.选择一个包名,并把pakage语句加到可复用的类的源码中.
3.编译这个类.
4.把可复用的类导入其他程序中即可.
23.java中提出在类定义的括号外的仅有2个语句,pakage和import.
24.软件的复用性,软件的复用性就是利用紫的已有的,定义良好的的经过仔细测试的文档清晰的可移植的易于获得的软件构件开发新的软件.
以上就是java面向对象的一些基本术语的概述,其中的有些部分可以扩展的更深,看过think in java的 朋友就会有此种感觉.此文章向对初学者阐述了面向对象的基本概念.对已是java程序员的朋友可以对他们的基本知识做以回顾.
热心网友
时间:2022-04-03 15:10
给你我曾经的一个思路,不知道正不正确,学JAVA那阵子正在流行“帝国时代II”这一款游戏,我也很喜欢玩,所以自已想了一个类似JAVA思想的概念。
在JAVA世界里,就好像在游戏的世界里一样,你是这个世界唯一的神,你创建类并实例出对象。
1、在游戏里,已经帮你做了各种各样的角色,你只要创建他们出来就可以了。而在JAVA世界里,你不仅可以使用已有了类来创建对象,也可以自已写类,并创建对象。
2、这些类的划分,有点像游戏里角色的划分,有劳民,骑兵,*兵,在游戏里,劳民负责生产粮食等资源,这些资源送到兵营可以产出各种各样的兵来。在JAVA的世界里,你的类创建出各种各样的角色,有的负责连接数据库,有的负责返回查询结果,有的负责接受用户请求。
3、你是你的JAVA世界里唯一的神,你的任务就是在你的想象的一个JAVA“世界”里创建各种各样的角色,让他们互相交互,工作,来达成你的目标。在游戏里,你的目标是战胜敌人,而在JAVA“世界”里,你的目标也就是实现你要开发的系统,让这个系统里的角色协同工作来帮助用户完成他们的任务,如企业资源管理ERP等系统。
你所创建的JAVA程序里各个类和对象就像活着的游戏角色或人一样,各自做各自的事情,有时他们会通信,比如负责数据库查询的对象,会叫负责数据库连接的对象给他一个连接,然后他又继续做他的事,把查询结果查询出来,并告诉用户页面结果(这里的用户页面也可以看成一个对象)。面向对象程序开发并不像面像结构程序一样,有一个开始点,有一个结束点,你的程序一启动,这些对象就都活在你的JAVA世界,也就是JAVA容器里面,他们协同工作来完成任务,他们消亡的唯一个条件就是你关闭程序。
说的不是很好,若对你有一点帮助请选择我的答案。谢谢
热心网友
时间:2022-04-03 16:45
面对对象就是:
1:把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。
2:类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。
3:对象即为人对各种具体物体抽象后的一个概念,人们每天都要接触各种各样的对象,如手机就是一个对象。在面向对象的编程方式中,对象拥有多种特性,如手机有高度、宽度、厚度、颜色、重量等特性。
这些特性被称为对象的属性。
热心网友
时间:2022-04-03 18:36
面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节;这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种优化,操作起来更加的方便,简化了过程。面向对象有三大特征:封装性、继承性、多态性,其中封装性指的是隐藏了对象的属性和实现细节,仅对外提供公共的访问方式,这样就隔离了具体的变化,便于使用,提高了复用性和安全性。对于继承性,就是两种事物间存在着一定的所属关系,那么继承的类就可以从被继承的类中获得一些属性和方法;这就提高了代码的复用性。继承是作为多态的前提的。多态是说父类或接口的引用指向了子类对象,这就提高了程序的扩展性,也就是说只要实现或继承了同一个接口或类,那么就可以使用父类中相应的方法,提高程序扩展性,但是多态有一点不好之处在于:父类引用不能访问子类中的成员。
举例来说:就是:比如说你要去饭店吃饭,你只需要饭店,找到饭店的服务员,跟她说你要吃什么,然后就会给你做出来让你吃,你并不需要知道这个饭是怎么错做的,你只需要面向这个服务员,告诉他你要吃什么,然后他也只需要面向你吃完收到钱就好,不需要知道你怎么对这个饭进行吃。
热心网友
时间:2022-04-03 20:44
最简洁的解释也是比较官方的解释是,面向对象是一种 对现实世界理解和抽象的方法。但是这句话对于初学者来讲确实难以理解。
我把自己的理解用最通俗的语言解释一下,面向对象实际上就跟我们生活中很多情形一样,举例我们1000个人在同一家公司,对于公司来讲我们每个人都是一个对象,我们每个人所掌握的工作技能不同所以分工不同,我们各司其职在各自工作岗位上做好自己擅长的事情,所以公司能高效运作快速发展。面向对象就是这个道理,一个完整应用程序有很多个类,对于这个应用来讲每一个类都是一个对象,每一个类都只做一件事,单独实现一个功能,这么多个类组合一起就实现了一个功能完整的应用程序。这就是最通俗的解释了,不知道我说的你明白没。
更多java学习方面的问题可以访问这个网页,网页链接,。
热心网友
时间:2022-04-03 23:09
面向数据 。 所有的男人都是面向性冲动的一样 那就是一切
热心网友
时间:2022-04-04 01:50
就是一种组织代码的方式
热心网友
时间:2022-04-04 04:48
万事万物皆对象
热心网友
时间:2022-04-04 08:03
只有new出来的才是对象