JavaSE方法

Java方法


一、什么是方法

方法是语句的集合,执行某个功能,类似于函数。

  • 方法是解决一类问题的步骤的有序组合
  • 方法包含于类或对象中
  • 方法在程序中被创建,在其他地方被引用

方法的设计原则:原子性,一个方法只完成一个功能,利于后期扩展


二、方法的定义及调用

1. 方法的定义

包含一个方法头和一个方法体

  • 修饰符:可选,定义了方法的访问类型。
  • 返回值类型:方法可能会有返回值,没有返回值使用 void
  • 方法名:是方法的名称,与参数表共同构成方法签名。
  • 参数类型:调用方法时需要传递的值,参数是可选的。
    • 形参:形式参数,方法被调用时用于接收外界输入的数据
    • 实参:实际参数,调用方法时传递给方法的数据。
  • 方法体:包含具体的执行语句,定义了方法的功能。

2. 方法的调用

使用 static 修饰,可以在类的内部直接调用,否则要创建类的实例对象来调用。

public static void main(String[] args) {
  // 调用方法并定义变量接收返回值
  double max = max(97.35, 74.22);
  System.out.println(max);
}
  
// 修饰符表示该方法是类变量,
// 返回值是double类型,方法名是max
// 需要传递两个double类型的数据
public static double max(double i, double j) {
  return Math.max(i, j);  // 返回两数最大值,终止方法
}

三、方法重载

重载就是在一个类中,多个方法有相同的方法名,但是形参不同。

重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(参数个数不同,或类型不同,或排列顺序不同等)
  • 方法的返回类型可以相同也可以不相同
  • 仅仅返回类型不同不足以构成重载

实现过程:

编译器执行方法时,会根据调用方法的参数个数、参数类型等因素去逐一匹配正确的方法,如果匹配失败,会报错。

// add方法
public static int add(int a, int b) {
  return a+b;
}

// 参数的类型不同
public static double add(float a, float b) {
  return a+b;
}

// 参数的个数不同
public static int add(int a, int b, int c) {
  return a+b+c;
}

四、命令行传参

在运行一个程序的时候再传递数据,需要通过命令行传递参数给 main() 函数。

public static void main(String[] args) {
  for(String str: args) {
    System.out.println(str);
  }
}

五、可变参数

JDK5 开始,Java 开始支持传递同类型的可变参数给某个方法。

在方法声明中,在指定的参数类型后加省略号 ...

一个方法中只能指定一个可变参数,同时必须是方法的最后一个参数。

public class Demo {
  public static void main(String[] args) {
    Demo demo = new Demo();
    
    // 传递的参数类型要和形参类型匹配,全部是 int型
    demo.test(0,1,2,3,4,5);
    // 也可以传递数组:demo.test(0, new int[]{1,2,3,4,5});
  }
  
  // 'int... i' 必须写到参数列表的最后!
  // 错误写法:(int... i, int m)
  public void test(int m, int... i) {
    System.out.println(m);  // 输出第一个参数 0
    for (int x: i) {
      System.out.print(x + "\t"); // 输出1 2 3 4 5
    }
  }
}

六、递归

某个方法在执行的过程中调用自身,通俗地说,就是我调我自己。

利用递归可以用简单的程序解决一些复杂的问题,大大减少代码量。

递归包含两个部分:

  • 递归头:什么时候不再调用自身,如果没有,会陷入死循环,这是非常可怕的
  • 递归体:什么时候需要调用自身

主要是学习递归思想!当递归的深度太大,性能消耗十分严重,少用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值