方法的定义:
把能完成特定功能的代码块装进一个方法中。
为了节约代码量,也为了不重复写同样的代码,我们只需要调用此包装好的方法就可以实现我们想要的功能
方法的声明:
[权限修饰符] [static] 返回值类型 方法名 (参数列表) {
//方法体;
}
方法分为 有返回值 和 无返回值 、 有参数 和 无参数 两两组合类型
都以public、非static修饰为例
有参 无参
有返回值 public int method ( int num1,int num2 ) {} public int method () {}
无返回值 public void method ( int num1, int num2 ) {} public void method () {}
例如:
有返回值的: 返回值类型可以是基本数据类型 也可以是 引用数据类型
方法体一定要有return(返回一个定义好的同类型值) 不写会编译报错
public int method () {
return 1;//return的值是和定义的int是同一类型的
}
无返回值的:直接定义为void即可 方法体可以有return 但不写也不会编译报错(return的作用变成了停止)
public void method () {
//
}
有参数的:调用的时候需要传入对应的数据类型参数才可以调用
无参数的:调用就无需传入参数,直接调用
方法涉及到两个概念;重写(Override)和重载(Overload)
重载(Overload)
同一个类中 同名不同参构成的
不同参构成有:参数类型不同 参数类型顺序不同 参数个数不同 满足其一则构成不同参
重写(Override)
在两个类的,子类重写父类的方法
1.得要是同一方法签名(同名+同参)
2.子类重写父类的方法
①权限修饰符:子类不能小于父类
②返回值类型:子类要跟父类一致,又或者是父类返回值类型的子类
③抛出异常的类型:子类抛出异常的类型要小于父类抛出异常的类型
方法中的值传递机制:
形参是声明在方法名后面的()中,方法在调用的时候,是把实参的值复制一份给形参,所以在方法中修改了值,出了方法的作用域,并不会影响实参的值。
基本数据类型和引用数据类型的值传递区别:
基本数据类型传递本身的实体值
引用数据类型传递地址值
方法的可变形参
样式:
[修饰符] 返回值类型 方法名称(参数类型 参数1,xx,xx,可变参数类型...参数名) {
方法体;
[return 返回值;]
}
public static double arrInArr(double num,double ...nums){//double[] nums
double sum = 0;
//普通for 将nums当数组一样操作
for( int i = 0; i < nums.length; i++){
sum += nums[i];
}
//foa each
for( int i : nums){
sum += i;
}
return sum * num;
}
public static void main(String[] args) {
double[] arr = new double[]{100.0, 201.0, 18.88, 19.9, 39.9};
//
System.out.println(ArrayInArrayTest.arrInArr(0.8, 100.0, 201.0, 18.88, 19.9, 39.9));
//数组 可以传入到可变形参
System.out.println(ArrayInArrayTest.arrInArr(0.8, arr));
}