方法重载
定义:在同一类中。允许存在一个以上的同名方法。只要它们的参数个数或者参数类型不同即可
即两同一不同:同一个类,相同方法名,参数列表不同,参数类型不同
例子:
public class Test{//Test是类名,首字母要大写(驼峰规则)
public static void main(string[] args){
Test p = new Test()//空格隔开
p.getSum(1,1)//***如果把第一个方法删了会类型提升自动选择第二个方法
}
//以下四种方法构成方法重载
//判断方法重载跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系
public void getSum(int i,int j){//方法名需要首字母小写,后面单词首字母大写
System.out.println(i + j);
}
public void getSum(double i, double j){
System.out.println(i + j);
}
public void getSum(string i, int j){
System.out.println(i + j);
}
public void getSum(string i, int j){
System.out.println(i + j);
}
}
类型提升
byte,short,char -> int -> long -> float -> double
低精度向高精度转变问题不大,高精度向低精度转变容易出现精度损失
在运算过程中容易出现类型提升
//强制类型转换
int a = 1
double b = (double)a
类默认值
类的属性在没有赋值的时候有默认初始化值
局部变量没有对应的初始值,在调用局部变量之前一定要赋值
形参调用时赋值即可
数组 :套娃
public class Array{
public static viod main(String[] args){
int[] arr = new int[]{1,2,3};//一维数组的静态初始化
int[][] arr1 =new int[][]{{1,2,3},{4,5},{6,7,8}};//二维数组的静态初始化
String[][] arr2 =new String[3][4]//二维数组的动态初始化
String[][] arr3 =new String[3][]//二维数组的动态初始化
}
}
针对 string[][] arr3 =new string[3][]//二维数组的动态初始化 如果要索引arr3[1][3]
arr3[1] = new string[4]//new创建空间赋地址,他把一个string[4]的首地址赋给arr3[1]
获取数组长度length,以上面代码为例
a =arr1.length//3
a=arr1[1].length//2
//理解套娃的意思
如何历遍二维数组
for(i = 0,i < arr1.length,i++){
for(i = 0,i < arr1[i].length,j++){
int a = 0;
arr1[i][j] = a+1;
a++;
}
}
数组元素的默认初始化值
针对方式1,如:int[][] arr = new int[4][3]
外层元素的初始化值为地址值;
内层元素的初始化值为:与一维数组初始化情况相同
针对方式2,如:int[][] arr = new int[4][]
外层元素的初始化值为:null
内层元素的初始化值为:不能调用,否则报错
如果需要调用可以
arr[1] = new int[3]//这样就给数组第二行开辟了空间,这里需要理解new是开辟空间的,如果没有new就是赋了地址而且需要明确把谁的地址赋给他。new创建新的空间,同时把地址赋给了arr[1]