java语言的基础是类的概念!
对象(实例,实体)是一个类的具体的表述!用它来对类中的一切进行操作!
方法,是类中具体的实现,及对属性的操作
属性,简单理解为成员变量!用它来定义类的一些特征!
对象(实例,实体)是一个类的具体的表述!用它来对类中的一切进行操作!
方法,是类中具体的实现,及对属性的操作
属性,简单理解为成员变量!用它来定义类的一些特征!
解决方案 »
- 有关socket的问题
- 高手看一下这段程序,有关于构造方法的重载顺序,不太明白,为什么程序执行出来是A62,而不是62A呢?
- 类的问题
- 关于java.io 类 PrintWriter
- 将jxl.jar与应用程序打包找不到类的问题?
- 过年关喽!今年你挣了多少?
- 一个out of memory问题
- 如何实现取出前一天日期
- 如何把String(如:2002-5-17 16:15:11)转化为Timestamp类型
- -==swing中如何判断在某一时刻,鼠标是否在某个component之上,而且这一时刻没有鼠标事件产生?==-
- 一直在线等待直到问题解决!!请教高手:jbuilder6打包的问题!!
- 要跳了,广州的进来看看,做个小调查,给个意见
行为(方法):对象的操作,表述对象的动态属性,作用是设置或改变或取得对象的状态
标志(对象标识,对象名):用以区分同一类型的不同对象,COM、COM+和CORBA中使用128位标识,一般在程序中使用对象名来区分同类型的对象。 对象的方法一方面把对象地内部变量包裹、封装和保护起来,只有对象自己的方法才能改变这些内部变量;另一方面,对象的方法还是对象与外部环境和其他对象进行交互合通信的接口,外部环境和其他对象可以通过这个接口来调用对象的方法、操作对象的行为何改变对象的状态。如何去发现对象?
舍弃那些与系统责任无关的事物,只注意与系统责任有关的事物;对与系统责任有关的事物,并不需要描述其全部特征,舍弃与系统责任无关的特征。判断事物是否与系统责任有关的原则:
该事物是否为系统提供了一些有用的信息;
它是否向系统提供了某些服务。
如何确定对对象进行抽象的程度?在图书馆管理系统中,设立“书”这个类,应该把每一本书作为该类的对象,系统需要记住把每一本书借给了谁。在书店管理系统中,设立“书”这个类,应该把同一版本的一种书作为一个对象,记住它的单价,库存等信息。另外,在一个系统中可能把管理者和工人设置成不同的类,而在另一个系统中,所有的人员对象都用同一个“人员”类来定义。在不同的系统中,抽象的程度可以有所不同。好的抽象应能清晰而简练地表达问题域,并使系统开销较少。 封装是指利用抽象数据类型将数据和作用于数据之上的操作封装在一起,数据保护在抽象数据类型的内部,系统的其他部分只能通过包裹在数据外面的被授权的操作才能与这个抽象数据类型进行交流和交互。封装隐藏了对象的内部实现细节的结果。在需求发生变化时,只要接口不改变,当对象内部需要修改时,只要对成员函数的实现细节作修改,因此大大减少了内部的修改对外部的影响,即减小了修改引起的“波动效应”。对象以外的部分不能随意存取对象的内部数据(属性),从而有效地避免了外部错误对它地“交叉感染”,使软件错误局部化,减小了查错和排错地难度。
封装的另一个重要意义是使抽象数据类型的可重用性大为提高。在面向对象的程序设计中,继承表达的是对象类之间相关的关系。这种关系使得某类对象可以继承另外一类对象的特征和能力。事物(对象)既具有共同性,也具有特殊性。运用抽象的原则舍弃对象的特殊性,抽取其共同性,则得到一个适应一批对象的类。如果在这个类的范围内考虑定义这个类时舍弃的某些特殊性,则在这个类中只有一部分对象具有这些特殊性,而这些对象具有共同的特征,就得到一个新的类。它是前一个类的子集,称为前一个类的特殊类,而前一个类称为这个新类的一般类。 定义:如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,则A叫做B的特殊类,B叫做A的一般类。等价的术语有:超类(父类)/子类,基类/派生类。特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。继承具有重要的实际意义,它简化了人们对事物的认识和描述。我们只需要发现和描述子类所独有的那些特征。子类对象的特征由两部分组成:从基类(直接基类和间接基类)继承的特征;
子类所独有的那些特征。
在软件开发过程中,不需要把它的一般类已经定义过的属性和服务重复地书写一遍,只需要声明它是某个类的特殊类,并定义自己的特殊属性和服务。这将减轻软件开发工作的强度。除了避免公用代码的重复开发,减少代码和数据冗余以外,继承的作用还表现在通过增强一致性来减少模块间的接口和界面。