NO.9 了解类与对象

世间万物都可以看成对象,然后类是对象抽象出来的。对象是真实存在的个体,而类是代表一类个体。类是对象的模板,对象是类的具体的实例。

类中可以包含所有对象所共有的属性/特征----成员变量,还可以包含所有对象所共有的行为----方法。一个类可以创造多个对象,同一类型的多个对象,结构相同,数据不同。

引用类型之间画等号:指向同一个对象,对其中一个引用的修改会影响另一个引用。

基本类型之间画等号:赋值,对其中一个变量的修改不会影响另一个变量。

null:空,没有指向任何对象若引用的值为null,则该引用不能再进行任何操作了,若操作则NullPointerException空指针异常。

为实现以下功能:

可以通过定义四个变量的方法搞定,但数据的封装就是个问题,而且主方法定义的变量和方法中的变量并没有什么直接的关系。所以我们采用面向对象的思想解决:


定义一个Staff类,封装数据


主方法中利用对象打印信息(后面打印工资涨了百分之25的信息)

接下来是回顾今天刚接触的Tetris游戏,现在只能完成很简单的一部份。

Tetris游戏的逻辑为:

玩家操作有:旋转方块;以格子为单位左右移动方块;让方块加速落下。

方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而新的方块出现在区域上方开始落下。

当区域中某一行的横向格子全部由方块填满,则该列会消失并成为玩家的得分。同时删除的行数越多,得分指数上升。

当固定的方块堆到区域最上方而无法消除层数时,则游戏结束。

一般来说,游戏还会提示下一个要落下的方块,熟练的玩家会考虑到下一个方块,评估要如何进行。由于游戏能不断进行下去对商业用游戏不太理想,所以一般还会随着游戏的进行而加速提高难度。

预先设置的随机发生器不断地输出单个方块到场地顶部。

本案例需要定义类来表示Tetris游戏中的基本构造单元:格子。

定义格子类


在CellTest类中定义printWall方法,方便调用以明白程序是否达到预期


主方法实现

最后看看程序运行效果:

相比(4,4)下移1格



上面基础下先左移三格后右移两格

最后查看位置为:5,3

以上便是俄罗斯方块简单的一小小部分。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • This article is a record of my journey to learn Game Deve...
    蔡子聪阅读 4,160评论 0 9
  • 本文从 这里 翻译过来的。 2048这个游戏有一段时间特别火,Github上有其原始版本,游戏看起来很简单,但是...
    江枫阅读 1,614评论 2 7
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,975评论 25 708
  • 昨天是2016年的元宵节,本该是一个和朋友一起出去吃吃喝喝,顺便去中山路看元宵灯会赏等观景的喜庆日子,可我却坐在宿...
    洛三刀阅读 880评论 0 0
  • 怎么忘记了做没做梦呢,算了,那就说说我今天在单位的事情吧。我单位属于钱少事杂离家近的鸡肋工作,一天没个正经事天天瞎...
    满血复活1阅读 216评论 0 0

友情链接更多精彩内容