今天学习的知识主要有下面几个方面,主要是理解。
方法的重载(Overload):
1)发生在同一个类中,方法名称相同,参数列表不同
2)编译器会自动根据方法的签名来绑定调用不同的方法
方法重载及调用构造方法:
1)给成员变量赋初值
2)与类同名,没有返回值类型
3)在创建对象时被自动调用
4)若自己不写构造方法,则编译器默认提供一个无参构造方法;若自己写了构造方法,则编译器不再默认提供
5)构造方法可以重载
.this:指代当前对象,哪个对象调用方法指的就是哪个对象
只能用在方法中,方法中访问成员变量之前默认有个this.
this的用法:
1)this.成员变量名-------------访问成员变量
2)this.方法名()---------------调用方法
3)this()----------------------调用构造方法
引用类型数组:
1)Cell[] cells = new Cell[4];
cells[0] = new Cell(2,5);
cells[1] = new Cell(2,6);
cells[2] = new Cell(2,7);
cells[3] = new Cell(3,6);
2)Cell[] cells = new Cell[]{
new Cell(2,5),
new Cell(2,6),
new Cell(2,7),
new Cell(3,6)
};
3)int[][] arr = new int[3][]; //数组的数组
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = new int[2];
arr[1][0] = 100;
4)int[][] arr = new int[3][4]; //3行4列
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
arr[i][j]=100;//每个赋值为100;
}
}
学到此处,俄罗斯方块小游戏项目便又可以前进一小步了,首先建一个小方格的Cell类:
自定义构造方法,方便赋值4个小型正方形格子组成的规则图形(Tetromino),共有7种,分别以S、Z、L、J、I、O、T这7个字母的形状来命名,各个图形形状如图-4所示。
下面定义T类,其中先创建Cell数据类型的cells数组:
其中drop、moveLeft、moveRight可以在小括号传参数,以便控制移动格数 构造方法与一般方法的重载其他S、Z、L、J、I、O类与上面类除构造方法不一样,其余一致。
O类不同的代码至于代码重复的问题,明天再解决。最后是T、J测试结果:
main方法代码输出为:
四个小格子坐标的变化
网友评论