Java面向对象02-方法的签名,重载,构造方法和引用类型数组

来源:互联网 发布:手机windows系统模拟 编辑:程序博客网 时间:2024/04/30 07:38

方法补充

  1. 方法的签名—方法名和参数列表
  2. 方法的重载(overload)
    -1)同一个类中,方法名相同,参数列表不同
    -2)编译器在编译时,会根据签名自动绑定调用相应的方法
  3. 构造方法
    1)常常用于给成员变量赋初值
    2)方法名必须与类名相同,无返回值
    3)构造方法是在创建对象时自动调用
    4)构造方法可以重载
    5)若自己不写构造方法,则编译器默认提供一个无参的构造方法
    若写了构造方法,则编译器不会默认提供
  4. this关键字
    1)指代当前对象,谁调用就指谁
    this只能写在方法体中
    2)this的用法:
    *this.成员变量—访问成员变量
    *this.方法名—–调用方法(很少用)
    *this()———-调用构造方法

引用类型数组

  1. 以俄罗斯方块格子类为例
//Cell类class Cell{    int row;    int col;    Cell(){   //无参构造方法        this(0,0);   //this关键字调用有参构造方法    }    Cell(int row,int col){  //有参构造方法        this.row=row;        this.col=col;    } } 

2.

//引用类型数组 Cell[] cells=new Cell[4]; //声明一个格子数组,长度为4     cells[0]=new Cell(2,1);     cells[1]=new Cell(3,1);     cells[2]=new Cell(2,2);     cells[3]=new Cell(3,2);  //给格子数组中的每个元素赋值

3.

Cell[] cells=new Cell[]{new Cell(2,1),new Cell(3,1),                           new Cell(2,2),new Cell(3,2),} //声明一个长度为4的格子数组并赋值  

4.

int[][] arr=new int[3][];//以数组为元素的数组  arr[0]=new int[2];  arr[1]=new int[3];  arr[2]=new int[2];  arr[1][0]=100;  //第二个元素的第一个元素赋值为100

5.

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    }  }

案例

1.创建一个Cell类

//创建一个格子类public class Cell {    int row;    int col;    Cell(){   //无参构造方法        this(0,0);   //this关键字调用有参构造方法    }    Cell(int row,int col){  //有参构造方法        this.row=row;        this.col=col;    }    void drop(){  //下落一行        row++;    }    void moveLeft(){  //左移一列        col--;    }    void moveRight(){  //右移一列        col++;    }    String coord(){  //打印坐标        return row+","+col;    }     }

2.创建一个T类(4个格子组成)

//定义俄罗斯方块中的T类public class T {    Cell[] cells; //声明一个格子数组    T(){        this(0,0);  //调用有参构造方法    }    T(int row,int col){  //有参构造方法,给格子数组元素赋初值        cells=new Cell[4];        cells[0]=new Cell(row,col);        cells[1]=new Cell(row,col+1);        cells[2]=new Cell(row,col+2);        cells[3]=new Cell(row+1,col+1);    }    void drop(){    //T格子下落一行        for(int i=0;i<cells.length;i++){            cells[i].row++;        }    }    void moveLeft(){   //T格子左移一列        for(int i=0;i<cells.length;i++){            cells[i].col--;        }    }    void moveRight(){  //T格子右移一列        for(int i=0;i<cells.length;i++){            cells[i].col++;        }    }    void print(){   //打印T格子坐标        for(int i=0;i<cells.length;i++){            String str=cells[i].coord();            System.out.println(str);        }    }}

3.创建一个T类测试类

//创建一个T类测试类public class TTest {    public static void main(String[] args) {        T t=new T(2,5); //创建一个T类对象并调用有参构造方法        System.out.println("T格子初始坐标:");        t.print();        System.out.println("下落一行后");        t.drop();        t.print();        System.out.println("左移一列后");        t.moveLeft();        t.print();    }}
1 0