|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是netbeans,谢谢。
在教程(十二)中,我们有如许的假定。假定有如许一个复杂需求(实在谈不上是需求,仅仅为了初学者简单了解而假造):某培训中央要开辟一个外部员工办理体系。该培训中央今朝有两个部门,手艺资本部和营业部。手艺资本部的员工卖力授课,称为讲师。营业部员工卖力接洽洽商营业,称为发卖。在办理系统中,必要办理的是一切员工的姓名、薪水,和讲师的手艺偏向,发卖的义务量。…..
基于如许的假定,我们计划了三个类:父类Employee、子类Sales和Trainer。假如我们有以下语句:
Employeee=newEmployee();
是完整切合语法的。可是,我们从面向对象编程的角度动身,体系中存在的对象,必定在实际中能够找到对应的实体。可是在实际中,是没有Employee类的对象的,只要Sales,大概Trainer。以是得出结论:Employee类不该该被实例化。
怎样包管一个类不被实例化哪?只需将这个类声明为笼统类便可。利用abstract关头字便可,以下:- publicabstractclassEmployee{
- privateStringname;
- privatedoublesalary;
- //TBC
- }
复制代码 Employee类声明为笼统后,将不克不及实例化,假如呈现以下语句:Employeee=newEmployee();将会呈现编译毛病。
可是笼统类仍然能够作为范例利用,如:Employeee=newSales();(后续文章中将先容该用法)。
初学者能够临时把笼统类界说为:不克不及实例化的类,为笼统类。
接上去我们来思索别的一个成绩。
父类Employee中界说了一个办法:- publicvoidsetSalary(doublesalary,doublerate){
- this.salary=salary*(1+rate);
- }
复制代码 可是假如子类Sales和Trainer固然都必要完成这个营业逻辑,可是完成体例却都不不异,如Sales以下:- publicvoidsetSalary(doublesalary,doublerate){
- this.salary=salary*(1+2*rate);
- }
复制代码 Trainer类的以下:- publicvoidsetSalary(doublesalary,doublerate){
- this.salary=salary*(1+0.5*rate);
- }
复制代码 那末,Employee类中的setSalary(doublesalary,doublerate)该怎样处置?初学者常常会想,既然子类都不会利用父类的办法体,那末就间接作废该办法的声明。如许是不成行的,父类是子类配合出格的表现,子类中的确都必要完成setSalary(doublesalary,doublerate)这个逻辑,只是完成体例不同罢了。也就是说,我们必要一个计划,既可以表现子类的配合特性,又不必写出没用的办法体,这就是笼统办法。只需将父类的setSalary(doublesalary,doublerate)办法声明为以下便可:
publicabstractvoidsetSalary(doublesalary,doublerate);
必要注重的是,笼统办法是没无方法体的,声明后间接利用;停止。
笼统办法和笼统类之间的干系是:
1)笼统类中纷歧定有笼统办法
2)有笼统办法的类必定是笼统类
因而,假如一个类承继的父类中有笼统办法,那末子类必需完成其笼统办法,不然子类也必需声明为笼统类。
良多初学者会不太了解笼统类的感化,特别笼统办法,以为既然连完成逻辑都没有,又何须声明?笼统类,笼统办法都是Java中十分主要的观点,笼统类是多个子类配合特性的表现,笼统办法是子类配合举动的标准。
手机用到的是用j2me所编出来的小程序。 |
|