仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 509|回复: 8
打印 上一主题 下一主题

[学习教程] 来看Java言语进门教程(十五):笼统类与笼统办法

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:10:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

手机用到的是用j2me所编出来的小程序。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-20 15:46:02 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
变相怪杰 该用户已被删除
板凳
发表于 2015-1-29 12:29:48 来自手机 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-6 00:53:11 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
因胸联盟 该用户已被删除
5#
发表于 2015-2-14 17:52:19 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
柔情似水 该用户已被删除
6#
发表于 2015-3-4 09:16:26 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
深爱那片海 该用户已被删除
7#
发表于 2015-3-11 18:08:15 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
不帅 该用户已被删除
8#
发表于 2015-3-19 06:06:07 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
若相依 该用户已被删除
9#
发表于 2015-3-27 08:57:11 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 16:59

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表