萌新卷妹带你从头复习JavaSE-方法1

萌新卷妹带你从头复习JavaSE-方法1

✨欢迎关注?点赞?收藏⭐留言✒

?本文由京与旧铺原创,csdn首发!

?系列专栏:java学习

?首发时间:?2022年10月7日?

?你做三四月的事,八九月就会有答案,一起加油吧

?如果觉得博主的文章还不错的话,请三连支持一下博主哦

?最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲

?推荐一款模拟面试、刷题神器?[点击进入网站

?1.Java方法基本构造

?1.1Java方法是什么?

在许多编程语言(比如 C 和 C++)中,“函数”用于表示子程序。而在 Java 中,我们称之为“方法”,意思是“做某件事的方式”。 Java 中的方法决定了对象可以接受哪些消息。方法最基础的几个部分包括:方法名、参数、返回值,以及方法体。 ?使用方法有以下的优点:

  1. 是能够模块化的组织代码(当代码规模比较复杂的时候).
  2. 做到代码被重复使用, 一份代码可以在多个位置使用.
  3. 让代码更好理解更简单.
  4. 直接调用现有方法开发, 不必重复造轮子.

?我们要带着问题去学习,现在我给你一段判断一个数是否是素数的代码,让你改造成一个方法判断一个数是否是素数,返回值类型要求是boolean

?1.2Java方法的定义

ReturnType methodName( /* 参数列表 */ ) {
  // 方法体
}

现在我们不讨论publicprivatestatic,我们定义方法就像main方法一样去定义:

//定义方法
public static 方法返回值 方法名称([参数类型 形参 ...]){
 方法体代码;
 [return 返回值];
}
//如
public static boolean isPrime(int a) {
    //方法体
}
//调用
返回值变量 = 方法名称(实参...);
boolean ret = isPrime(13);

?注意:

  1. public 和 static 两个关键字在此处具有特定含义, 我们暂时不讨论, 后续博文会详细介绍.
  2. 方法定义时, 参数可以没有,每个参数要指定类型.
  3. 方法定义时, 返回值也可以没有, 如果没有返回值, 则返回值类型应写成 void.
  4. 方法定义时的参数称为 “形参”, 方法调用时的参数称为 “实参”.
  5. 方法的定义必须在类之中, 代码书写在调用位置的上方或者下方均可.
  6. Java 中没有 “函数声明” 这样的概念.

我们会进行方法的定义后,我们就能写出判断素数方法的外壳了!做好了外壳,就差内部的方法体了,方法体的内容就是对素数判断实现的内容。

?1.3Java方法的执行过程与参数

?基本规则?

  1. 定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行.
  2. 当方法被调用的时候, 会将实参赋值给形参.
  3. 参数传递完毕后, 就会执行到方法体代码.
  4. 当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行.
  5. 一个方法可以被多次调用.

1

对于基础类型来说, 形参相当于实参的拷贝. 即 传值调用。 ?举个栗子,在一个方法中进行两数交换是无效的,因为交换的两个数实际上是形参的交换,调用完函数后形参就被销毁了,并且实参并没有进行交换,如果需要交换两数,可以采用数组,数组将在后续博文详细介绍。

?1.4完成判断素数的函数

前面已经介绍了方法的定义与使用,现在我们就可以完成改造,将前面给出的判断素数代码封装,实现一个判断素数的方法。

image.png 我们来测试一下,使用该方法试着打印1-100内的素数,我没记错的话1-100间素数个数为25个!

image.png

image.png

?2.Java方法的重载

image.png

image.png 这种特征叫做重载( overloading。) 如果多个方法有相同的名字 不同的参数,便产生了重载。编译器必须挑选出具体执行哪个方法,它通过用各个方法给出的参数类型与特定方法调用所使用的值类型进行匹配来挑选出相应的方法。如果编译器找不到匹配的参数, 就会产生编译时错误,因为根本不存在匹配, 或者没有一个比其他的更好。这个过程被称为重载解析(overloading resolution)。 ?重载规则:

  1. 方法名相同
  2. 方法的参数不同(参数个数或者参数类型)
  3. 方法的返回值类型不影响重载.

?3.Java方法的递归

一个方法在执行过程中调用自身, 就称为 “递归”. 递归相当于数学上的 “数学归纳法”, 有一个起始条件, 然后有一个递推公式. ?例如, 我们求 N! 起始条件: N = 1 的时候, N! 为 1. 这个起始条件相当于递归的结束条件. 递归公式: 求 N! , 直接不好求, 可以把问题转换成 N! => N * (N-1)! 12

public class testBlog {
    public static int factorial(int n) {
        if (n == 1) {
            return 1;
        }
        return n * factorial(n - 1);
    }
    public static void main(String[] args) {
        //递归,n的阶乘
        System.out.println(factorial(5));
    }
}

测试一下,5!= 120,看看对不对。 !

image.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享