java 类 引用数组对象_Java 方法重载与引用数组类型

1.方法重载

1)方法的签名

方法的签名包含方法名和参数列表

一个类中,不可以有两个方法的签名完全相同,即一个类中不能有两个方法的方法名和参数列表都一样。

public class Test{

public void print(int x){...};

public void print(int x){...}; //编译错误,方法签名不能一样

}

public class Test{

public void print(int x){...};

public boolean print(int x){...}; //编译正确

}

2)方法的重载

在Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载(overload)。

发生在一个类中,方法名相同,参数列表不同

编译器在编译时自动根据方法的签名绑定调用的方法

public class Sum {

public static void main(String[] args) {

int x = sum(5,6);

double y = sum(5.0,6.0);

System.out.println(x);

System.out.println(y);

}

public static int sum(int x,int y){

return x+y;

}

public static double sum(double x,double y){ //方法重载

return x+y;

}

}

/*

运行结果:

11

11.0

*/

3)构造方法

构造方法是在类中定义的方法,构造方法常用于实现对象成员变量的初始化,不同于其他的方法,构造方法定义有如下两点规则。

构造方法的名称必须与类同名

构造方法没有返回值,但也不能写void

语法:

[访问修饰符] 类名(){

构造方法体;

}

3.1)this关键字的使用

this关键字用在方法体中,用于指向调用该方法的当前对象,简单来说:哪个对象调用方法,this指的就是哪个对象,只能用在方法中,方法中访问成员变量之前默认有个this. 。

public void drop(){

this.row ++; //将调用该方法对象的成员变量row+1,这样书写概念更佳清晰

}

//为了方便起见,在没有歧义的情况下可以省略this:

public void drop(){

row ++;

}

在构造方法中,用来初始化成员变量的参数一般和成员变量取相同的名字,这样会利于代码的可读性,但此时不能省略this关键字,是用来区分成员变量和参数。

public Cell(int row,int col){

this.row = row; //将参数列表中的row赋值给类中的成员变量cow

this.col = col;

}

3.1.1)this的用法

this.成员变量:访问成员变量

this.方法名():调用方法

this():调用构造方法

3.2)默认的构造方法

任何一个类都必须含有构造方法

如果源程序中没有定义,编译器在编译时将为其添加一个无参的空构造方法,即为默认的构造方法

当定义了构造方法后,Java编译器将不再添加默认的构造方法了

class Sum{

int x,y;

Sum(int x,int y){

this.x = x;

this.y = y;

}

}

public class Test{

public static void main(String[] args){

Sum s = new Sum(); //编译错误,当定义了构造方法Sum(int x,inty){..}之后,编译器不再提供默认的构造方法了

}

}

3.3)构造方法的重载

为了使用方便,可以对一个类定义多个构造方法,这些构造方法都有相同的名称(类名),方法的参数不同,称之为构造方法的重载。一个构造方法可以通过this关键字调用另外的一个重载构造方法。

class Sum{

int x,y;

Sum(){

this.x = 0;

this.y = 0;

}

Sum(int x){

this.x = x;

this.y = x;

}

Sum(int x,int y){

this.x = x;

thix.y = y;

}

}

//以上构造方法重载可以通过this.调用构造方法来进行重载,如下所示

class Sum{

int x,y;

Sum(int x,int y){

this.x = x;

this.y = y;

}

Sum(int x){

this(x,x);

}

Sum(){

this(0,0);

}

}

2.引用类型数组

1)数组是对象

在Java中,数组属于引用数据类型

数组对象在堆中存储,数组变量属于引用类型,存储数组对象的地址信息,指向数组对象

数组的元素可以看成数组对象的成员变量(只不过类型全部相同)

08b4d69cf68daa4448cee9b0085def59.png

2)引用类型数组的声明

数组元素可以是任何类型,包括引用类型

92df2f83e0a6a4a932f736b1a8956220.png

3)引用类型数组的初始化

引用类型数组的默认初始值都是null

如果希望每一个元素都指向具体的对象,需要针对每一个数组元素进行“new”运算。

//1.先声明再赋值

Emp[] e = new Emp[3];

e[0] = new Emp("Tom",26);

e[1] = new Emp("Jerry",28);

e[2] = new Emp("Andy",30);

//2.声明的同时赋值

Emp[] e = new Emp[]{

new Emp("Tom",26),

new Emp("Jerry",28),

new Emp("Adny",30)

};

f14b67399af2a96c6edb8ef9e20f8e9c.png

4)数组的类型是基本类型数组

数组的元素可以为任意类型,也包括数组类型

int[][] arr = new int[3][]; //arr指向一个数组,该数组有三个元素,每个元素都是int类型数组,长度分别是2,1,3。

arr[0] = new int[2];

arr[1] = new int[1];

arr[2] = new int[3];

arr[0][0] = 1;

arr[0][1] = 2;

arr[1][0] = 3;

arr[2][0] = 4;

arr[2][1] = 5;

arr[2][2] = 6;

arr[2][3] = 7;

436ae4d92c56fb991b784ef4ba6651fa.png

案例1:遍历数组类型的数组

public class Test {

public static void main(String[] args) {

int[][] arr = new int[3][];

arr[0] = new int[2];

arr[1] = new int[1];

arr[2] = new int[3];

arr[0][0] = 1;

arr[0][1] = 2;

arr[1][0] = 3;

arr[2][0] = 4;

arr[2][1] = 5;

arr[2][2] = 6;

for(int i=0;i

for(int j=0;j

int x = arr[i][j];

System.out.println(x);

}

}

}

}

/*

运行结果:

1

2

3

4

5

6

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值