`
Wallian_hua
  • 浏览: 28481 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

类设计技巧.一些基础支持..(整理篇.)

阅读更多

想要使用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 代码
  1. //伪代码   
  2.   
  3. private String a="";   
  4.   
  5. public A(){   
  6.    this("a");   
  7. }   
  8.   
  9. public A(String a)   
  10. {   
  11.   this.a =a;   
  12. }  

 

还有2个非常重要的2点就是

1. 静态初始化快.

例如..

java 代码
  1. //伪代码.   
  2. static  
  3. {   
  4.  Random ro=new Random();  
  5.   nextId=ro.nextInt(100);   
  6. }  

 

2.对象初始化快..

例如.

java 代码
  1. //伪代码   
  2. {   
  3.   id=nextId;   
  4.   nextId++;   
  5. }  

3.实例初始化

 

java 代码
  1. //伪代码   
  2. private String name;//以前我们是这样声明一个变量.. 但没有初始化..   
  3. private String name="";//这就是初始化的一个变量  

包的命名 一般包的命名都是以自己的玉米来命名.. 而且是逆序的...

例如

java 代码
  1. package com.wallian-hua.javaeye.codejava  

这个都是个人的编程习惯...

 

类设计技巧..

  1.一定将数据设计为私有的..

     最重要的;绝对不要破坏封装性.

2.一定要对数据初始化.

   JAVA不对局部变量初始化.但是会对对象的实例域进行初始化...

3.不要在类中使用过多的基本数据类型.

  就是说.用其他可以代替多个相关的数据类型的使用,这样会使.类更加容易修改.

例如..用一个称为Address的类替换下面的Customer类中的实例域..

java 代码
  1. //伪代码   
  2.   
  3. private String street;   
  4. private String city;   
  5. private state;   
  6. 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程期末设计.zip

    实战案例集锦:收录了一些经典案例,让您在实践中掌握C/C++的应用技巧。 三、适用人群 这份复习资料适用于学习C/C++的各类人群,无论是初学者还是有一定编程基础的学生,都能从中获得收益。 四、使用建议 我们...

    学生成绩管理系统 选课系统 学期末课程设计 .zip

    实战案例集锦:收录了一些经典案例,让您在实践中掌握C/C++的应用技巧。 三、适用人群 这份复习资料适用于学习C/C++的各类人群,无论是初学者还是有一定编程基础的学生,都能从中获得收益。 四、使用建议 我们...

    asp.net知识库

    事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle...

    EA培训系列第二讲EA安装和使用指南.pdf

    为此,最近抽时间把这几篇有关EA的文章整理了一下,构成一个EA专题系列,作为对”外汇EA信号交易网”对EA开发工作的支持.同时,考虑到学习者的不同基础及要求,于是,又补充了一些最基础的知识,形成一讲:命名《第二讲...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    全书分5篇24章,共计603个实例和603个经验技巧。每个实例都是经过笔者精心筛选的,具有很强的实用性,其中一些实例是开发人员难于寻觅的解决方案。 本书两卷共计1200个例子,包括了开发中各个方面最常用的实例,是...

    PHP和MySQL WEB开发(第4版)

    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()重载方法 ...

    PHP和MySQL Web开发第4版pdf以及源码

    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()...

    PHP和MySQL Web开发第4版

    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管理之道 性能调优、高可用与监控.part2.rar

    《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、...

Global site tag (gtag.js) - Google Analytics