张国伟 发表于 2022-8-12 09:09:56

方法学习

方法是什么

//类.对象.方法
System.out.println.()

[*]方法的本意是功能块,包含于类或对象中,就是实现某个功能的语句块的集合(其他语言通常叫函数),在其他地方被调用。
[*]设计方法的时候,最好保持方法的原子性,即一个方法只实现一个功能,这样有利于以后的功能拓展。
例:
public class Demo01 {
    public static void main(String[] args) {
      int sum = add(1,2);//调用add方法
      System.out.println(sum);
    }
       
    //定义add方法
    public static int add (int a, int b){
      return a+b;
    }
}方法结构:
修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;      
}方法调用


[*]对象名.方法名(实参列表)
[*]当方法返回一个值时,方法调用通常被当做一个值,例如:
int sum = add(10,20)

[*]当方法返回值是void,方法调用是一条sout输出语句
[*]一个方法中,遇到return语句便立即终止该方法
public class Demo02 {
    public static void main(String[] args) {
      int max = max(10,20);
      System.out.println(max);
    }

    public static int max(int num1,int num2){
      int result = 0;

      if (num1 == num2){
            System.out.println("二者相等");
            return 0;//终止方法
      }
      if (num1>num2){
            result = num1;
      }else {
            result = num2;
      }

      return result;
    }
}结合刚学的Scanner输入比较:
import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      System.out.println("第一个数:");
      int a = scanner.nextInt();
      System.out.println("第二个数:");
      int b = scanner.nextInt();
      int max = max(a,b);
      System.out.println("最大的数为:"+max);
      scanner.close();
    }

    public static int max(int num1,int num2){
      int result = 0;

      if (num1 == num2){
            System.out.println("二者相等");
            return 0;//终止方法
      }
      if (num1>num2){
            result = num1;
      }else {
            result = num2;
      }

      return result;
    }
}方法重载


[*]重载就是在一个类中,有相同的方法名,但是形参不同
[*]方法名必须相同
[*]参数列表必须不同(或参数个数不同,或参数类型不同,或参数排列顺序不同)
[*]方法的返回值类型可以相同可以不同,若仅返回值类型不同,参数相同,则不构成方法重载,会报错
public class Demo04 {
    public static void main(String[] args) {
      int max = max(10,20);
      System.out.println(max);
    }

    public static int max(int num1,int num2){
      int result = 0;

      if (num1 == num2){
            System.out.println("二者相等");
            return 0;//终止方法
      }
      if (num1>num2){
            result = num1;
      }else {
            result = num2;
      }

      return result;
    }

    public static int max(double num1,double num2){
      int result = 0;

      if (num1 == num2){
            System.out.println("二者相等");
            return 0;//终止方法
      }
      if (num1>num2){
            result = (int) num1;
      }else {
            result = (int) num2;
      }

      return result;
    }

    public static int max(int num1,int num2,int num3){
                ...
    }
}命令行传参


[*]有时希望运行一个程序的时候给它传递消息,这要靠传递命令行参数给main()方法实现
可变参数


[*]在方法声明中,在指定参数类型中加一个省略号
[*]一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通参数必须在其之前声明
public static int max(int... nums){}public static int max(int x,int... nums){}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 方法学习