方法和数组

1. 方法

1.1. 方法的定义

修饰符 返回值类型 方法名(参数类型1 参数名1,参数类型2 参数名2){
    ...
    方法体
    ...
    return 返回值;
}

返回值类型:如果没有返回值则写void,return后面可以不加返回值,也可是直接不写return。

参数:可以是一个或多个,也可没有。

1.2. 方法的调用

方法名(实参1,实参2;
int result = sum(2,3); // 可以这样把方法有的返回值赋值给变量

方法的调用时填写的参数,必须与定义时的参数类型顺序个数相匹配。

1.3. 方法的重载

同一个类中,相同方法名,不同参数列表(参数类型,个数,顺序不同)的方法叫做重载方法。

public class A{
    public int fn(int a,double b){...}
    public void fn(int a,double b){...} // 返回类型不同不算重载,看做是重复定义。
    public int fn(double a,int b){...} // 只是顺序不同也算重载
    public int fn(double a,long b,char c){...} // 个数,类型都不同的重载
}

1.4. 可变参数

适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。

格式变量类型... 变量名

public int fn(int x, int... args) {
        int sum = 0;
        for (int i = 0; i < args.length; i++) {
            sum += args[i];
        }
        return sum*x;
}

可变参数的特点

  • 只能出现在参数列表的末尾,一个方法只能有一个可变参数。
  • ...位于变量类型和变量名之间,前后有无空格都可以。
  • 调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

语义逻辑

  1. 因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数必须位于最后一项。
  2. 当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。

2. 数组

// 声明数组
变量类型[] 数组名; // 常用
变量类型 数组名[]// 也符合语法,但不常用。
// 创建数组
变量类型[] 数组名 = new 变量类型[数组大小]// 创建空数组
变量类型[] 数组名 = new 变量类型[]{1,值2,……}// 根据值创建数组
变量类型[] 数组名 = {1,值2,……}// 根据值创建数组
数组名.length // 获得数组的大小
数组名[index] // 获取数组内对应索引的值,index为0,1,2……
// 多维数组,以二维为例,多维类推
变量类型[][] 数组名 = new 变量类型[外维大小][內维大小];
// 即每个外维元素都是一个內维大小的数组,內维大小给定就每个外维元素都一样大,也可以不写。
// 可以通过给每个外维元素单独赋值来分配不同的內维大小,如:
int[][] arr = new int[2][];
arr[0] = {2,3,4};
arr[1] = {7,0,10,23,5};

results matching ""

    No results matching ""