面向对象与类之设计技巧总结

上传人:平*** 文档编号:12792554 上传时间:2017-10-21 格式:DOC 页数:6 大小:57.53KB
返回 下载 相关 举报
面向对象与类之设计技巧总结_第1页
第1页 / 共6页
面向对象与类之设计技巧总结_第2页
第2页 / 共6页
面向对象与类之设计技巧总结_第3页
第3页 / 共6页
面向对象与类之设计技巧总结_第4页
第4页 / 共6页
面向对象与类之设计技巧总结_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《面向对象与类之设计技巧总结》由会员分享,可在线阅读,更多相关《面向对象与类之设计技巧总结(6页珍藏版)》请在金锄头文库上搜索。

1、第一 类设计的技巧我们在设计类的时候,就像在室内设计一样,怎么合理创建每个变量,并安排每个方法,是非常重要的。一方面看起来更有专业的水平,便于自己和他人阅读;另一方面,也可以更清晰的在其他类或包中调用该类,使得 java 的封装性更好,健壮性更强,等等。1、一定要将数据设计为私有当然,这里说一定,并不是说所有的数据都要这么做,在一些必要的数据上是可以放宽一些权限的;不过为了安全起见,设置成为私有,是为了其封装性的良好。其实最重要,需要强调的就是:绝对不要破坏封装性。当数据保持私有时,外部使用者就不用去直接调用这些数据,而是通过一个入口,一个方法访问,这样,使用者不需要知道内部数据怎么组织的,只

2、需要知道如何传入数据,如何使用结果等就可以了。而且,这些数据也就避免了被访问,从而防止被修改了。2、对数据进行初始化我们在创建对象之前,一定要对其初始化。对实例变量进行显式的初始化是有一定必要的,因为如果让系统对对象的一些变量进行初始化,那么我们有的时候不知道系统会提供怎样的默认初始化值,这就会对数据的使用造成了一定的影响。比如说,你在设计小轿车这类汽车的时候,如果你不初始化它的轮胎数默认为 int = 4;(或者更多)的话,而让系统默认初始化值为 0,这显然是不符合实际的。3、不是所有的变量或者域都需要独立的访问器和设定器(即 getXxx 和 setXxx,Xxx 代表变量名)当把数据或者

3、说一些变量设置为 private 的时候,需要对数据进行访问和必要的修改的时候,是需要访问器和更改器的,但是,并不是所有的都是如此。比如说对于一个雇员的工资而言,是需要获得或设置的,这是需要 getSalary()和 setSalary()方法的,但是对于雇员的姓名和雇佣日期等,一旦构造了这个雇员对象,就就应该禁止更改了。另外,在对象中,常有一些不希望别人获得或设置的实例对象,如一些地区的信息等。4、类中不要存在过多的方法,适当的分解一个类的功能这里的”过多“到底是多少呢?这就要根据个人的经验而定了,但是,如果很复杂的一个类可以很明显地分解成两个或更多的简单的类,这就需要将其分解。当然,也不能

4、把一个很简单的方法作为一个类,这就显然有些不合适了,掌握好度就可以了。比如说:一个类可以包含这样几个方法:对数据获取最大值,最小值,排序等操作,另一个类可以包含这样几个方法:对数据进行增加或删除等操作。5、类名或者方法名要能够体现各自的职责这与变量一样,一个类名或者方法名应该有自己一个能够反映出其含义的名字。命名可以这样写:arraySort,即对数组的排序;如类名可以是 Employee,即是雇员的类。这样更清晰的给自己也给其他人方便的阅读。6、使用固定的格式对类进行定义: 在对类进行定义的时候,可以按这样的顺序定义,如:java view plaincopyprint?1. /创建一个简单

5、的雇员类 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

6、. public int getAge() 20. 21. if (ageif(x is of type1) 2. action1(x); 3. else if(x is of type2) 4. action2(x); 这就需要考虑使用多态了。如果 action1 和 action2 表示的是相同的内容,就可以定义一个方法,将其放置在两个类的超类或者接口中,然后就直接调用 x.action(),因为 JVM 虚拟机可以动态绑定 x 是属于那种类型,这样可以节省很多代码,提高执行效率,而且更有利于对代码进行维护和扩展。下面是举例:java view plaincopyprint?1. clas

7、s Employee 2. 3. /将变量定义为 private 4. private String name; 5. private double salary; 6. public Employee(String name,double salary) 7. 8. this.name = name; 9. this.salary = salary; 10. 11. 12. public String getName() 13. 14. return name; 15. 16. 17. public double getSalary() 18. 19. return salary; 20.

8、21. 22. public void setSalary(double salary) 23. 24. this.salary = salary; 25. 26. 27. 28. class Manager extends Employee 29. 30. private double bonus = 0; 31. public Manager(String name,double salary) 32. 33. /调用超类 Employee 中的构造器 34. super(name,salary); 35. 36. 37. /获得 Manager 类中对象的 salary,有额外的奖金 3

9、8. public double getSalary() 39. 40. double baseSalary = super.getSalary(); 41. return baseSalary + bonus; 42. 43. 44. public void setBonus(double bonus) 45. 46. this.bonus = bonus; 47. 48. 49. 50. class ManagerText 51. 52. public static void main(String args) 53. 54. Manager boss = new Manager(Anna

10、,80000); 55. boss.setBonus(5000); 56. Employee staff = new Employee3; 57. staff0 = boss;/由于 boss 是 Manager 类的,是 Employee 的子类,所以,是可以赋值给 staff 数组中的元素的 58. staff1 = new Employee(Ben,50000); 59. staff2 = new Employee(Jone,40000); 60. for(int i=0;i 7 不要过多的使用反射反射机制使得人们可以通过在运行是查看变量和方法,让人们能编写出更具有通用性的程序。这种功能对于便携系统程序来说极其实用,但是通常不适用于编写应用程序。反射是很脆弱的,即编译器很难帮助人们发现程序中的错误。任何错误只能在运行时才被发现,并导致异常。更多内容请看:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号