0116 java 方法
1、方法名定义格式:修饰符 返回值类型 方法名(数据类型 值1,数据类型 值2,。。。){}
方法调用格式:方法名(实参列表);
例:传入长和宽 求面积
public static double get(double w,double h){
return w*h;
}
调用:double a=get(2,3);System.out.println(a);
2、无返回值 在方法定义的时候 返回值类型的地方写void;
例:无返回值打印3行2列的星星
public static void print(){
for(int i=0;i<3;i++){
for(int j=0;j<2;j++){
System.out.print("*");
}
System.out.println();
}
}
调用:print();
3、方法重载
重载方法参数必须不同:
参数个数不同:例:get(int a,int b,int c)和 get(int a,int b)
参数类型不同:例:get(double a,double b)和get(int a,int b)
参数顺序不同:例:get(double x,int y)和 get(int x,double y)
上述都是方法的重载
方法的重载只与方法名与参数类型有关,与返回值无关:
例:void get(int x)和 int get(int y) 这两个是重复的方法,不能同时出现
方法的重载与具体的变量标识符无关
例:get(int x)和 get( int y) 这两个是重复定义,不能同时出现
4、参数传递
例:
class Demo04
{
public static void main(String[] args)
{
int a=2;
get(a);//基本数据类型具体的值 值传递
System.out.println(a);
}
public static void get(int a){
a=1;
}
}
此时的a的值 并没有受到影响
当调用方法时,如果传入的数值为基本数据类型(包含String类型),形式参数的改变对实际参数不影响
图解:
例:
class Demo05
{
public static void main(String[] args)
{
int[] brr={1,2,3};
get(brr);//引用数据类型 地址值
System.out.println(brr[0]);//20
}
public static void get(int[] arr){
arr[0]=20;
}
}
此时brr[0]的值受到了影响
当调用方法时,如果传入的数值为引用数据类型(String类型除外),形式参数的改变对实际参数有影响
图解
如果此时方法内改变的是arr的值 例:arr=null;那最后的输出打印的brr[0]的值就不会受到影响