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]的值就不会受到影响

 

posted @ 2021-01-16 11:06  公雪  阅读(89)  评论(0编辑  收藏  举报