想要使用OOP一定要清楚对象的三个主要的特性
1.对象的行为---------可以对对象施加哪些操作,或可以对对象施加那些方法.?
2.对象的状态---------当施加方法时,对象如何响应!!!
3.对象的标识---------如何区分具有相同行为和状态的不同对象!!!
同一个类的所有对象实例由于支持相同行为而具有相同的行为.. 而具有家族的相似性.. 对象的行为是用可调用的方法定义的..
此外.每个对象都保存着描述当前特征的信息.这就是对象的状态.对象的状态可以能会随着时间而发生改变.但是这种改变不会自发的.. 对象的状态必须通过调用方法实现..否则就会破坏他的封装性..
但是对象的状态并不能完全描述一个对象.每个对象都有一个唯一的身份...
需要注意的是.作为一个类的实例.每个对象的表示永远是不同的.但状态却常常存在着差异..
类之间的关系.
1.依赖. uses-a
2.聚合 has-a
3.继承 is-a
(uses-a)依赖是一种最明显的.最常见的关系... 如果一个类的方法操纵了一个类的对象.那么我们就说一个类依赖于另外一个类.
(has-a)例如.. 一个A对象包含了一些B对象.
(is-a)也就是说. 如果A类扩展了B了.A类不但包含了从B类继承过来的方法..还会有一些额外的功能.
重载.
如果多个方法有相同的名字.不同的参数.便产生了重载.......
如果一个类A提供了一个显示的构造方法..而且是带参数的那么.你new一个空参数的构造那么这时候就会报erro..
所以如果你想要new 一个空的构造器.那么.你必须声明一个空的构造器...
在构造器里面可以用this()调用该类里面的其他构造器..
例如
java 代码
-
-
- private String a="";
-
- public A(){
- this("a");
- }
-
- public A(String a)
- {
- this.a =a;
- }
还有2个非常重要的2点就是
1. 静态初始化快.
例如..
java 代码
-
- static
- {
- Random ro=new Random();
- nextId=ro.nextInt(100);
- }
2.对象初始化快..
例如.
java 代码
3.实例初始化
java 代码
-
- private String name;
- private String name="";
包的命名 一般包的命名都是以自己的玉米来命名.. 而且是逆序的...
例如
java 代码
- package com.wallian-hua.javaeye.codejava
这个都是个人的编程习惯...
类设计技巧..
1.一定将数据设计为私有的..
最重要的;绝对不要破坏封装性.
2.一定要对数据初始化.
JAVA不对局部变量初始化.但是会对对象的实例域进行初始化...
3.不要在类中使用过多的基本数据类型.
就是说.用其他可以代替多个相关的数据类型的使用,这样会使.类更加容易修改.
例如..用一个称为Address的类替换下面的Customer类中的实例域..
java 代码
-
-
- private String street;
- private String city;
- private state;
- private int zip;
4.不是所有的域都需要独立的域访问器.或者是更改器.
5.使用标准格式进行类的书写跟定义.
采用下面的顺序书写类的内容.
5.1.共有访问特性部分.
5.2.包作用域访问特性部分.
5.3.私有访问特性部分.
在每一个部分中.应该按照下列顺序列出..
5.4静态域.
5.5.实例域
5.6.实例方法.
5.7.静态方法.
6.将责任过多的类进行分解... (但是不要盲目的分解..根据个人需要.. )
好了. 今天整理到这里.. today is good day....! ^_^
分享到:
相关推荐
实战案例集锦:收录了一些经典案例,让您在实践中掌握C/C++的应用技巧。 三、适用人群 这份复习资料适用于学习C/C++的各类人群,无论是初学者还是有一定编程基础的学生,都能从中获得收益。 四、使用建议 我们...
实战案例集锦:收录了一些经典案例,让您在实践中掌握C/C++的应用技巧。 三、适用人群 这份复习资料适用于学习C/C++的各类人群,无论是初学者还是有一定编程基础的学生,都能从中获得收益。 四、使用建议 我们...
事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle...
为此,最近抽时间把这几篇有关EA的文章整理了一下,构成一个EA专题系列,作为对”外汇EA信号交易网”对EA开发工作的支持.同时,考虑到学习者的不同基础及要求,于是,又补充了一些最基础的知识,形成一讲:命名《第二讲...
全书分5篇24章,共计603个实例和603个经验技巧。每个实例都是经过笔者精心筛选的,具有很强的实用性,其中一些实例是开发人员难于寻觅的解决方案。 本书两卷共计1200个例子,包括了开发中各个方面最常用的实例,是...
6.8 类的设计 6.9 编写类代码 6.10 理解PHP面向对象新的高级功能 6.10.1 使用Per-Class常量 6.10.2 实现静态方法 6.10.3 检查类的类型和类型提示 6.10.4 克隆对象 6.10.5 使用抽象类 6.10.6 使用__call()重载方法 ...
6.8 类的设计 6.9 编写类代码 6.10 理解PHP面向对象新的高级功能 6.10.1 使用Per-Class常量 6.10.2 实现静态方法 6.10.3 检查类的类型和类型提示 6.10.4 克隆对象 6.10.5 使用抽象类 6.10.6 使用__call()...
6.8 类的设计 6.9 编写类代码 6.10 理解PHP面向对象新的高级功能 6.10.1 使用Per-Class常量 6.10.2 实现静态方法 6.10.3 检查类的类型和类型提示 6.10.4 克隆对象 6.10.5 使用抽象类 6.10.6 使用__call()...
《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、...