1)  一定要将数据设计为私有;

不要破坏封装性。有时需要编写一个访问器或更改器方法,但是最好还是保持实例域的私有性。数据的表示形式可能会改变,但他们的使用方式却不会经常发生变化。当数据保持私有时,他们的表示形式变化不会对类的使用者产生影响,即使出现bug也易于检测。

2)  一定要对数据初始化

Java不对局部变量进行初始化,但是会对对象的实例域进行初始化。最好不要依赖于系统的默认值,而是应该显式的初始化所有的数据。

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

就是说用其他的类代替多个相关的基本的数据类型的使用。这样会更加利于理解且易于修改。如可以用一个新的Addess类替换下面的这些实例域。

    private String street;

private String city;

private String state;

private int zip;

4) 不是所有的实例域都需要独立的访问器和更改器。

如要设置或获得雇员的薪金。一旦构造了雇员对象,就应该禁止更改雇员日期,并且在对象中,常常包含一些不希望被别人获得或设置的实例域,如Address类中存放州缩写的数组。

5)  使用标准格式进行类的定义

一般要遵循以下规则书写类的内容:

共有访问特性部分;

包作用域访问特性部分;

私有访问特性部分;

在每一部分中,一般应按照下列顺序列出:

实例方法;

静态方法;

实例域;

静态域;

至于是否必须遵守这些规则,并没有达成共识。Sun的程序设计风格建议先书写域,再书写方法。不论采用哪种风格,重要的是保持风格的一致性。

6)  将职责过多的类分解

Java中类的设计技巧的更多相关文章

  1. Java中组合 设计技巧 实例

    关于组合 和 集成 先放两篇文章:这两篇文章写的太好了. http://blog.csdn.net/u013905744/article/details/51752044    Java的组合(持有对 ...

  2. Java 类设计技巧

    摘自<Java核心技术>卷I:基础知识 p140 第4章对象与类 - 类设计技巧 1)一定将数据设计为私有. 最重要的是:绝对不要破坏封装性.有时候,需要编写一个访问器方法或更改器方法,但 ...

  3. 面向对象的编程思想和Java中类的概念与设计

    面向对象的编程思想学习,面向对象内容的三条主线;1.java类及类的对象2.面向对象的三大特征3.其他关键字学习内容:3.1面向对象与面向过程面向对象与面向过程在应用上的区别 Java中类的概念与设计 ...

  4. Java开发数据库设计的14个技巧,你知道几个?

    1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对 ...

  5. objc@interface的设计哲学与设计技巧

    blog.sunnyxx.com 我是前言 学习objc时,尤其是先学过其他编程语言再来看objc时,总会对objc的类声明的关键字interface感到有点奇怪,在其它面向对象的语言中通常由clas ...

  6. Java 中类与类之间的关系

    在java中类和类之间的关系基本上有依赖.关联.聚合.组合等 一.继承关系     继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在J ...

  7. RocketMQ 整合 DLedger(多副本)即主从切换实现平滑升级的设计技巧

    目录 1.阅读源码之前的思考 2.从 Broker 启动流程看 DLedger 2.1 构建 DefaultMessageStore 2.2 增加节点状态变更事件监听器 2.3 调用 DefaultM ...

  8. java 中类为啥要序列化

    java里为什么要序列化?http://zhidao.baidu.com/link?url=7_wAQ8eAl28vcJPE5OKM5Y0Bo4aINNQokHhRmI9XPszEoTO5QF-gNb ...

  9. 暑期java(面向对象设计)学习第一阶段总结

    0.前言 本次博客针对的是暑假学习java(面向对象设计)的前三次作业的小结,第一次作业:7-1 对三个整数排序 7-2 对四个整数排序 7-3 对十个整数进行排序 7-4 对多个整数进行排序 第二次 ...

随机推荐

  1. Tomcat下设置项目为默认项目

    项目的实际使用中常常须要将当前项目设为tomcat的默认项目,而不是进入到tomcat的页面,有几种方法能够实现,注意另外一种.第三种情况须要先删除webapps下的ROOT文件夹,否则会失败. 一. ...

  2. WIN10系统如何隐藏底部搜索框

    右击任务栏,搜索,可以切换三种模式,建议还是显示搜索图标,因为这个搜索还是能比较快速定位到系统功能的,只不过显示搜索框的话比较占地方,不方便

  3. android中去掉ListView控件中的分割线

    通过设置android:divider="@null" ,可以去掉ListView控件中的分割线 也可以自定义分割线的颜色,比如: <ListView android:id= ...

  4. [UIView setShowsFPS:]: unrecognized selector sent to instance XXX

    今天在做sprite Kit game时遇到一个问题. 新建一个项目运行时发现就加了这几句代码无法运行.后来一查原来是storyboard uiview要改一下.改成SKview In your st ...

  5. windows服务管理TopShelf

    http://docs.topshelf-project.com/en/latest/index.html 我曾经把名称错为Topself

  6. 移动端H5的一些基本知识点总结

    移动端H5的一些基本知识点总结 来到这家公司之后,和曾经的工作发生了非常大的转变.曾经我一直是做PC端页面的.来到如今这家公司之后,主要是做手机移动端的页面. 移动端的页面在我这个做习惯了PC端页面的 ...

  7. Android 使用DDMS查看内存使用情况

  8. Hibernate学习笔记二:常用映射配置

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6760895.html 一:单向一对一 常用唯一外键的方法来配置单向一对一关系. 1:实体关系 类A中有类B对象 ...

  9. cocos2d-js 调试办法 断点调试 Android真机调试

    一 使用浏览器chrome打开程序,进行调试.跟普通js程序一样. 要么自行搭建服务器,利用python脚本,或者用其他服务器程序(LAMP或XAMPP).然后用浏览器打开服务器地址. 要么直接使用c ...

  10. jQuery Easy UI Tooptip(提示框)组件

    我们都知道DOM节点的title属性.Tooptip组件就是比較强大的title,它能够自由的设置自己的样式.位置以及有自己相关的触发事件. 演示样例: <!DOCTYPE html> & ...