JAVA学习路线1——方法重载,方法签名,数组(初始化)

方法重载

类似于自然语言的一词多义,当JAVA中出现多个方法名相同,但参数名不同的方法时,称为方法重载
一个简单的例子:

public static int add(int x, int y) {
return x + y;
}
public static double add(double x, double y) {
return x + y;
}
public static double add(double x, double y, double z) {
return x + y + z;
}

该三个方法名相同,但是形式参数不同,当我们使用时,编译器会对实参类型进行推演,根据推演的结果去确定用哪个方法。
使用方法:

add(x:5,y:6);
add(x:5.0,y:6.0);
add(x:5.0,y:6.0,z:7.0);

编译器会根据实参自动识别使用哪个方法。
注意:

  1. 方法名必须相同
  2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
  3. 与返回值类型是否相同无关

在同一个作用域中不能定义两个相同名称的标识符。比如:方法中不能定义两个名字一样的变量,那为什么类中就可以定义方法名相同的方法呢?
这需要引申到方法签名的知识

方法签名

方法签名可以理解为:编译器对方法名修改之后的最终名字,具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。

例如一下代码

public static int add(int x, int y) {
return x + y;
}
public static double add(double x, double y) {
return x + y;
}

我们可以用反汇编工具查看这两个方法的最终方法名:
请添加图片描述

数组

数组的创建

元素类型[] 数组名 = new 元素类型[];
eg.
int[] arr = new int[10];创建了一个容纳十个int的数组

数组初始化

有两种初始化:
1.静态初始化(不指定数组长度)

 int[] arr=new int[]{1,2,3}; 不指定数组长度,但编译器会根据{}内的元素个数来确定
 int[] arr={1,2,3}; 这种写法也可以,省略了new int[],但其实编译器会自动加上去

2.动态初始化(直接指定数组长度)

 int[] arr = new int[10];

注意:以下的错误不能犯
例如:

int[] arr = new int[3]{1,2,3}; 这种编译器会报错,因为你直接赋值了就不能写数组长度,给了数组长度
就不能自己赋值

还有

 int[10] arr = new int[]; 这种写法也是错的,指定长度必须在后面的括号

还有,你也可以这样分开写

 int[] arr;
 arr=new int[10];

还有一点值得注意:

int[] arr;
arr = new int[]{1,3,4};
arr = new int[]{6,7,8};
这样134会被678覆盖
类似于整体修改数组里的元素
也可以单独修改
arr[0]=1;
将第一个元素改为1

此外,和C语言一样,JAVA的元素也是用下标引用的,0下标是第一个元素

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值