文| Essie
编辑| Chris
对于最近让很多同学头疼昆士兰大学CSSE2002/7023 —— Java的第一次作业,今天特意给出我作为学姐的一些新的体会和经验分享,帮助大家取得高分!
Assignment 1 是完成一个桌游的基础构造,作业具体的内容则是在Javadoc中详细展示的,所以完成本次作业很重要的一部分就是阅读Javadoc并且理解。当大家看Javadoc头晕目眩,无法理解这个小游戏的结构时,可以阅读本文所附的作业结构图来增强理解。
文中还将介绍本次作业中使用到的特殊类,能够给大家做一个简要的入门。
废话不多说啦,请大家接着往后看~
写在前面 —— 关于svn
在CSSE2002/7023 这门课当中, 所有的作业都是通过SVN提交上传的,每次作业都要根据作业详情.pdf 当中提供的链接(图1)重新设置, 并且在提交之前所有的precheck也都是由tutor在各位所提交到repository里面的code上运行产生的,因此请大家提高对SVN的关注度哦,如果还没有设置好SVN的话,请大家及时找tutor帮忙设置好!
SVN(subversion) 除了能够帮大家方便地提交code之外,还能够帮助大家恢复代码的历史版本(提交过的),尤其是在修改完代码之后出现了新的问题, 想要改回修改前的版本是,SVN就是我们的后悔药了。所以强烈推荐大家养成定时,定阶段提交保存代码的习惯。
作业结构图
几种特殊Class
这次Java的A1当中会用到除了类之外的其他特殊类,包括interface(接口),abstract class(抽象类)以及enum(枚举)等大家之前没有接触过的类别。本文会简要介绍及举例说明这些特殊类的特点,请大家带好小板凳和瓜子!
Interface(接口)
Sample code
我们通过观察sample code可以看出接口的一些特点
接口中所包含的所有的方法的内容都是空的(eg.公共交通中的method“获得道路类型”和“获得最大承载量”)
Implement(执行实现)是一种类似于extends(继承)的动词,但是Implement描述的是普通class与Interface之间的关系(eg. 地铁和公交车都implement公共交通这个interface,我们也可以将这种关系理解为“地铁是一种公共交通,地铁具有公共交通的所有特质及功能”)
所有实现某个接口的类都必须override(重写)接口当中存在的所有method(eg. 地铁和公交车当中都override了公共交通中的“获得道路类型”和“获得最大承载量”这两个方法,并且根据自身特点填充了方法当中的内容)
我们无法instantiate(实例化)接口, 我们只能实例化实现该接口的类(eg.我们可以看到intellij在我们实例化公共交通的这一行报错,但是没有在我们实例化地铁和公交车的时候报错)
一个类可以同时实现多个接口(eg. 公交车同时implement 公共交通和车辆两个interface, 易混淆点是一个类只能extend(继承)一个类)
Enum(枚举)
Sample code
枚举是一种通常用来代表具有限定范围的常值的类,例如说我们可以用枚举来代表一个星期中的七天。当我们每次要实例化枚举的时候,往往都是被限定在枚举定义的几个常值中,就像我们在实例化“某天”时, 我们只能在一周七天里面选一天,星期八或者星期九都是不符合现实情况的,所以枚举也是无法实例化不在其所定义的常值中的其它值。
枚举也像别的类一样可以拥有private field(私有成员变量),只是定义方式与普通的类稍有不同。本例中的成员变量“是否要上学”的值都是附在定义的常值之后的括号内,而“是否要上学”这个变量的正式定义则是在所有常值的定义之后。
枚举的constructor(构造器)也与一般类存在一些差异。首先最大的差异就是枚举的构造器只能是private或者是package-private的,而普通类的构造器都是public的。枚举和普通类一样都是会自带默认构造器(不含参数),但是一旦我们在定义枚举中的常值时附上了成员变量,这时就一定要overload(重载)构造器了,并且重载的构造器的参数必须与定义的成员变量匹配。而重载的构造器的内容也在实例中展示,大家照葫芦画瓢即可。
Abstract Class(抽象类)
这一部分没有sample code,主要原因是抽象类与接口十分相似,差异在于抽象类中非抽象方法是需要写出方法内容,抽象方法(abstract method)则与接口中的方法一样,不需要写出方法的内容,而是由继承抽象类的类去实现抽象方法中的内容。
关于Java的第一个作业,暂时能给大家的小Tip就这些啦。
如果还对作业还是感到有难度的话,也欢迎大家了解匠人学院的大学辅导课程。
请戳下文了解详情👇
老天一定觉得布村留学生的课业太难,所以前学校Tutor学霸忍不住要来带你刷题过考试
留学在外,圈子很重要,成功渡过课程难关更是最重要的任务。
找到一个既能帮助自己解惑提高成绩,又能让接触到行业圈子的渠道。除了匠人,没第二家。
所以,来找匠人吧!
再也不用担心高额的重修费找上门,就在这个学期一起成为屠7大神!
联系“匠人小安”做更优秀的自己一
We
如此厉害的匠人,我们是谁?
Community
澳洲IT匠人社群
作为澳洲领先的IT行业交流圈子,已经有8000多个小伙伴加入,从刚刚来澳洲的IT新生,到行业大神都在IT圈子里。分享工作机会,解答生活职业就业移民问题。一个有爱的圈子,期待同样有爱的你加入。如果你被如此优秀的匠人精神吸引,欢迎2019年的新生加到相应的大学新生群!
* 目前,IT匠人圈已经有8个满的求职技术交流群,每个城市的匠人群,各大学的IT/CS新生群,行业交流群(大前端,Devops,Mobile,数据等等)