tags
date
type
status
slug
category
summary
password
icon
day2
- 属性:默认会被赋值
- 写在类的{}中,方法和代码块的{}之外
- 实例属性: 权限修改符 数据类型 属性名 [= 初始值]
- 类属性: 权限修改符 static 数据类型 属性名[ = 初始值 ]
- 变量:
- 四种类型
- 整型:四个
- byte:一个字节 8位 -128~127
- short 两个字节 16位
- int 四个字节 32位
- long 八个字节 64位,数值后面带L或l
- 浮点型
- float 单精度 四个字节 数值后面带F或f
- double:双精度 八个字节
- 字符型,有且只有一个,默认位“”
- char只能用''包裹,只有一个符号(字母、数字、中文)
- 布尔型
- boolean 只有false和true
- 引用数据类型:三大类,无数个,默认值都为null
- 类:使用class关键字定义的,例如String
- 数组:使用[]标识
- 接口:使用interface 关键字定义
P7
- 将棋子再全部放进数组中
- 要将所有的x和y坐标放在同一个数组中
- 另一种思路,将棋盘看成一个个坐标组合,将坐标单元设置成一个固定值,然后每个的位置就是1234递增
- 关于第一个棋子的位置,实际上是棋子大小减去棋子边距
- 先解决一次性画全部的办法,不要又复制一遍上面的代码,设置一个反转坐标的办法
- 反转完,没必要再又复制上面的循环,个人觉得可以创建个方法或者再加一个循环,当内层的走完,说明画完了,接着player变1,同时的话还得修改下面的反转函数,先判断player是不是0,是的话之后内层的for循环用原始x坐标
- 但是问题来了,如果每次都要传进去判断player是不是1再决定用不用反转后的坐标,好像也很麻烦
- 我们这个有些问题,只能画,不能实时更新,因为这是全局变量
P8
- 面向对象就是提取类
- 新建的类都得有什么方法呢? —— 参考上个代码想想要定义什么
- 先提取变量
- 哪些变量用什么权限
- 定义的常量,只能定义时或代码块中修改值,其他不允许修改
- 类创建好之后,要创建类的对象
- 对于想要获取类中的内容的变量,但是为了安全性,要将其中的变量设置为private,并且设置 set 和 get函数
- 有些问题,数组会打印两次,同时功能都放在一起太杂了(又是创建,绘制,又是保存到数组中),要将功能分开写
- 想要一开始运行打印棋盘,就是使用构造方法
- 构造方法的作用:在创建对象的时候就做一些必须做的事情
- 构造方法可以让我们自定义创建对象时,做一些必要的操作
P10
- 如何操作棋子
- 点击棋盘
- 如何获取棋子对象
- 如何判断点击的地方是否有棋子
- 如何区分选择、重新选择、移动、吃子
- 添加点击事件
- 点击之后显示点击在哪里
- 但是点击很难精确,所以需要有个范围约束
- 根据xy坐标计算网络对象转换思维,不是看xy的范围,站在更高的角度去看问题
- 不能直接修改 + 要返回Point值
- 所以创建一个Point对象,而不直接修改
- 定义坐标范围不能超过棋盘
- 如何找棋子,利用网格坐标p对象查找棋子对象,然后判断和数组中的棋子位置一不一样
p11
- super的作用:调用父类中的方法或属性
- 为什么还是没有清除原来的痕迹呢?
- 因为共用的是同一套坐标,改其中一个棋子的坐标,那么这个也会造成另一个被改变
- 栈:保存局部变量对对象的引用(就是我们常说的定义类变量等)
- 定义对象的引用 类 变量名
- 堆:new 出来的对象
- 方法区:
- 常量池
- 静态域:
p12
- 如何判断是不是第一次点击
- 设置一个成员变量,如果它有值存在的话,说明不是第一次
- 如何判断选中完第n次之后是吃子还是移动,还是重新选择
p13
- 如何给选中的象棋加个框框
- 难点,如何制作移动规则
p14 提取移动范围内
- 判断上边还是下边
- 作者:瑾墨
- 链接:https://www.gaoqilan.tech/Code/1bf7b93a-cfeb-4bc5-b269-ffc773182496
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。