Programming Methodology(二)

来源:互联网 发布:阿尔法猎手 软件 编辑:程序博客网 时间:2024/06/06 02:03

感觉每篇文章前都来段鼓舞人心的话加个BUFF蛮不错的~

有些事不是因为看到希望才去坚持,而是因为坚持了才看到希望。


既然听了Professor的课就按人家的规矩来,Reading Task,先预习这门课创始人Eric Roberts的Karel the Robot Learns Java的前三章,接下来的几节课应该都要围绕这个机器人来展开。

CH1.

简单介绍了一下JAVA,大家都这么熟了就不多说了。比较出彩的地方是很简略的点出了class 和 object的区别:Class is a pattern or template for objects share a common behavior and collection of state attributes.


CH2.

Tips:

a.关键字Extend      public class A extend B    表明A继承B;   public class A implement B,C,D    表明A实现B,C,D的接口;       Java中只支持单继承,但是可以实现多个接口。

b.一个基本的思路,当Karel只有左转的函数时,实现右转的方法,一是连续左转三次,二是设计一个右转函数。左转三次无需多言,右转函数可在子类中定义private.体现一个encapsulate information的思想。

c.NewImprovedKarel类:继承Karel(无法接触并改变),对其加入一些常用的方法(turn right等...),作为我们使用的父类。

d.来个软件工程思想里面的装逼术语:decomposition---分而治之。两个判断decomposition优劣的依据:1.Each subproblem should perform a conceptually simple task;2.Each subproblem should perform a task that is as general as possible, so that it can be used in several different situations.


CH3.

a.To solve mor general problems.

b.fencepost error


额预习完了才发现讲的内容和预习的也差不多~看来刚去米国的童鞋们一定要提前预习啊~


PS:前面几节课实在是太入门了,不过这个授课理念的确IMBA,围绕着Karel简明易懂,再忍2节,按照Mehran的说法从(五)开始就告别Karel进入JAVA的世界了~


Next--->Programming Methodlogy(三)


原创粉丝点击