Java学习---5

来源:互联网 发布:win7下安装mac双系统 编辑:程序博客网 时间:2024/05/17 02:50

面向对象程序设计 OOP,将数据放在第一位。
Java是完全面向对象的
类是构造对象的模板或蓝图。由类构造对象的过程称为创建类的实例。
封装,有时称为数据隐藏是与对象有关的一个重要概念。从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象中的数据称为实例域,操纵数据的过程称为方法。对于每个特定的类实例(对象)都有一组特定的实例域值。这些值的集合就是这个对象的当前状态。无论何时,只要向对象发送一个消息,它的状态就有可能发生改变。
实现封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。程序仅通过对象的方法与对象数据进行交互。
OOP的另一个原则是可以通过扩展一个类来建立另外一个新的类。事实上,在Java中,所有的类都源自于一个“神通广大的超类”,它就是Object。通过扩展一个类来建立另外一个类的过程称为继承。
对象的三个主要特征:
对象的行为 用可调用的方法定义的
对象的状态 描述当前特征的信息。对象的状态可能会随着时间而发生改变,但这种改变
不会是自发的。对象状态的改变必须通过调用方法实现。
对象标识 每个对象都有一个唯一的身份。需要注意,作为一个类的实例,每个对象的标识永远是不同的,状态常常也存在差异。
类之间的关系
在类之间,最常见的关系有
依赖(“uses-a”) 如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类。
聚合(“has-a”) 聚合关系意味着类A的对象包含类B的对象 (或者说关联)
继承(“is-a”) 是一种用于表示特殊与一般关系的
要想使用对象,就必须首先构造对象,并指定其初始状态。然后,对对象应用方法。
在Java程序设计语言中,使用构造器构造新实例。构造器是一种特殊的方法,用来构造并初始化对象。构造器的名字应该与类名相同,一个对象变量并有实际包含一个对象,而仅仅引用一个对象。在Java中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用。
只访问对象而不修改对象的方法称为访问器方法
所有的Java对象都是在堆中构造的,构造却总是伴随着new操作符一起使用。
不要再构造器中定义与实例域重名的局部变量
隐式参数,出现在方法名前的类对象
显示参数,位于方法名后面括号中的数值
显示参数是明显地列在方法声明中的。
隐式参数没有出现在方法声明中。
在每一个方法中,关键字this表示隐式参数。

访问器方法
只返回实例域值,又称为域访问器。

需要获得或设置实例域的值,应该提供下面三项内容:
一个私有的数据域
一个公有的域访问器方法
一个公有的域更改器方法

不要编写返回可变对象的访问器方法。
如果需要返回一个可变数据域的拷贝,就应该使用clone。

封装

属性可用来描述同一类事物的特征,方法可描述一类事务可做的操作。 封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。
封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。
而我们在设置变量的属性时,我们通常会对数据进行封装,这样就可以增加了数据访问限制,增加了程序可维护性。而实现方法就是:用private去修饰一个变量,然后再用setter方法去设置该变量的值,然后在用getter方法去调用该变量的值。

原创粉丝点击