绝大多数的Java程序员不必关心对象的具体实现,只要保证对象满足他们的需求就可以了。
关于OOP
OOP 词汇表
1.encapsulation;封装, 有时也称为数据隐藏
2.instance field :对象中的数据被称为实力域
3.method: 操纵数据的过程被称为方法
4.state: 状态
OOP 的另外一原则会让用户自定义Java类变得轻而易举, 这就是:类可以通过扩展另一个类来建立。 事实上, 在Java中, 所有的类都源于一个“神通广 大的超类”,他就是object、
对象:要想使用OOP,一定要清楚对象的三个主要特性
1.对象的行为(behavior)-----可以对对象施加哪些操作,或可以对对象施加哪些方法
2.对象的状态(state)-----当施加那些方法时, 对象如何相应
3.对象标识(identity)----如何区分具有相同行为与状态的不同对象
如果没有经过方法调用而改变对象状态, 就说明封装性一定遭到了破坏。**************
类之间的关系
最常见的关系有: 依赖-------聚合-------继承
如果一个类的方法操纵另一个类的对象, 我们就说一个类依赖于另一个类
应该尽可能的将相互依赖 的类减至最少。用软件工程的术语来说:就是使类之间的耦合度最小
对象与对象变量
要想使用对象, 就必须首先构造对象, 并制定其初始状态。 然后, 对对象施加方法。
对象变量:
可以显式的将对象变量设置为空(null), 表明这个对象变量目前没有引用任何对象
一定要认识到:一个对象并没有实际包含一个对象, 而仅仅引用一个对象
在Java中, 任何对象变量的值都是对存储在另外一处的一个对象的引用。new操作符的返回值也是一个引用。
变量不会自动的初始化为NULL, 而必须对它们进行初始化, 调用new或将它们设置为null
对属性做出修改的方法 被称为更改器方法, 仅访问属性而不加修改的方法被称为访问器方法。
静态方法
静态方法是不能想对象实施操作的方法。例如:Math类的Pow方法就是一个静态方法。 表达式:Math.pow(x,a); 计算幂
。 它在运算的时候,不使用任何Math对象。换句话说, 没有隐式的参数。
可以认为静态方法是没有this参数的方法(在一个非静态的方法中, this参数表示该方法的隐式参数。)
因为静态方法不能操作对象, 所以不能在静态方法中访问实例域。但是,静态方法可以访问自身类中的静态域。
在什么时候使用静态方法:
1.当一个方法不需要访问对象状态,,其所需参数都是通过显式参数提供的。
2.当一个方法只需要访问类的静态域。
参 数传递
*********一个方法可以修改传递引用所对应的变量值, 而不能修改传递值调用所对应的变量值***********/
在Java语言中, 方法参数的使用情况:
1.一个方法不能修改一个基本数据类型的参数(即数值型和布尔型值)
2.一个方法可以改变一个对象参数的状态
3.一个方法不能让对象参数引用一个新的对象。
类设计技巧:
1. 一定将数据设计为私有
2.一定要对数据初始化
3.不要在类中使用过多的基本数据类型
4.不是所有的属性都需要独立的属性访问器或属性更改器
5.使用标准格式进行类的定义
6.将职责过多的类进行分解
7.类名和方法名要能够体现他们的职责
Java 面向对象程序设计的基础知识
最新推荐文章于 2024-09-08 12:41:07 发布