第六天的博客
今天上午讲了Java中面向对象的多态技术,下午讲了游戏的示例,迷宫的游戏,里面有一个涉及到的一个关键的知识点是二维数组。
多态(Polymorphism):
在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特征。
多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能够创建可扩展的程序——即无论在最初创建时还是在需要添加新功能时都可以“生长”的程序。多态方法调用允许一种类型表现出与其他相似类型之间的区别,只要它们都是从同一基类导出而来。这种区别是根据方法行为的不同而表示出来的,虽然这些方法都额可以通过同一基类来调用。
《Think in java》
示例:
//PolymorphismDemo.java
class Father{
public void run(){
System.out.println(getClass());
}
}
class Son_01 extends Father{
public void sonRun(){
System.out.println(getClass());
}
}
class Son_02 extends Father{
public void sonRun(){
System.out.print(getClass());
}
}
public class PolymorphismDemo{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//向上转型
Father son_01=new Son_01();
Father son_02=new Son_02();
//多态方法
son_01.run();
son_02.run();
/*
* //编译期错误,因为父类中没有sonRun()方法
* son_01.sonRun();
* son_02.sonRun();
*/
}
}
//Output:
class Son_01
class Son_02
AS中的二维数组的应用
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。
形式如:var arrayDemo:Array={{1,2,3},{1,2,3},{1,2,3}};
AS二维数组示例:
//ArrayDemo.as
//新建一个二维数组
var array:Array=new Array();
//二维数组的赋值
array[0]=[1,2,3];
array[1]=[1,2,3];
array[2]=[1,2,3];
//访问数组的元素,要用到for循环的嵌套
for(var i:int=0;i<3;i++)
{
for(var j:int=0;j<3;j++){
var value:int=array[i][j];
trace(value);
}
}
//Output:
1
2
3
1
2
3
1
2
3