A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄玉昆 黑马帝   /  2013-2-5 01:19  /  1552 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们在设计类的时候,就像在室内设计一样,怎么合理创建每个变量,并安排每个方法,是非常重要的。一方面看起来更有专业的水平,便于自己和他人阅读;另一方面,也可以更清晰的在其他类或包中调用该类,使得java的封装性更好,健壮性更强,等等。
1、一定要将数据设计为私有
        当然,这里说一定,并不是说所有的数据都要这么做,在一些必要的数据上是可以放宽一些权限的;不过为了安全起见,设置成为私有,是为了其封装性的良好。其实最重要,需要强调的就是:绝对不要破坏封装性。当数据保持私有时,外部使用者就不用去直接调用这些数据,而是通过一个入口,一个方法访问,这样,使用者不需要知道内部数据怎么组织的,只需要知道如何传入数据,如何使用结果等就可以了。而且,这些数据也就避免了被访问,从而防止被修改了。
2、对数据进行初始化
        我们在创建对象之前,一定要对其初始化。对实例变量进行显式的初始化是有一定必要的,因为如果让系统对对象的一些变量进行初始化,那么我们有的时候不知道系统会提供怎样的默认初始化值,这就会对数据的使用造成了一定的影响。比如说,你在设计小轿车这类汽车的时候,如果你不初始化它的轮胎数默认为int = 4;(或者更多)的话,而让系统默认初始化值为0,这显然是不符合实际的。
3、不是所有的变量或者域都需要独立的访问器和设定器(即getXxx和setXxx,Xxx代表变量名)
       当把数据或者说一些变量设置为private的时候,需要对数据进行访问和必要的修改的时候,是需要访问器和更改器的,但是,并不是所有的都是如此。比如说对于一个雇员的工资而言,是需要获得或设置的,这是需要getSalary()和setSalary()方法的,但是对于雇员的姓名和雇佣日期等,一旦构造了这个雇员对象,就就应该禁止更改了。另外,在对象中,常有一些不希望别人获得或设置的实例对象,如一些地区的信息等。
4、类中不要存在过多的方法,适当的分解一个类的功能
        这里的”过多“到底是多少呢?这就要根据个人的经验而定了,但是,如果很复杂的一个类可以很明显地分解成两个或更多的简单的类,这就需要将其分解。当然,也不能把一个很简单的方法作为一个类,这就显然有些不合适了,掌握好度就可以了。比如说:一个类可以包含这样几个方法:对数据获取最大值,最小值,排序等操作,另一个类可以包含这样几个方法:对数据进行增加或删除等操作。
5、类名或者方法名要能够体现各自的职责
         这与变量一样,一个类名或者方法名应该有自己一个能够反映出其含义的名字。命名可以这样写:arraySort,即对数组的排序;如类名可以是Employee,即是雇员的类。这样更清晰的给自己也给其他人方便的阅读。
6、使用固定的格式对类进行定义:
         在对类进行定义的时候,可以按这样的顺序定义,如:
  1. <font size="1">//创建一个简单的雇员类  
  2. import java.util.*;  
  3. public class Employee   
  4. {  
  5.     public Employee(String name,int age,double salary)  
  6.     {  
  7.         //将变量定义为private  
  8.         private this.name = name;  
  9.         private this.age = age;  
  10.         private this.salary = salary;  
  11.     }  
  12.   
  13.     //访问器方法  
  14.     public String getName()  
  15.     {  
  16.         return name;  
  17.     }  
  18.   
  19.     public int getAge()  
  20.     {  
  21.         if (age<18)//限制age的值  
  22.         {  
  23.             System.out.println("不好意思啦,我们不接收未成年人!嘿嘿");  
  24.             return;  
  25.         }  
  26.         return age;  
  27.     }  
  28.   
  29.     public double getSalary()  
  30.     {  
  31.         return salary;  
  32.     }  
  33.   
  34.     //修改雇员工资:涨byPercent个百分点的工资  
  35.     public void setSalary(double salary,double byPercent)  
  36.     {  
  37.         salary + = salary*byPercent/100;  
  38.     }  
  39. }  </font>
复制代码
你可以先将特定包中的类导入,在创建构造器,然后创建变量和方法等等,当然这种风格不是固定的,重要的是,你在定义自己的所有类的时候都要遵循自己的风格,让类设计出来更统一,这样更显专业

评分

参与人数 1黑马币 +9 收起 理由
黄锦成 + 9 记得core java中有介绍

查看全部评分

5 个回复

倒序浏览
{:soso_e183:}学习了
回复 使用道具 举报
{:soso_e100:}
回复 使用道具 举报
受教了。
回复 使用道具 举报
如果有什么说的不太对的地方,还请大家多多赐教
回复 使用道具 举报
哈哈哈哈  哥们加油啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马