bilibiliJAVA学习方法

1.上节课的遗漏

hasNextInt实际上是一个判断语句,我要输入一个整数,我在控制台输入一个字符串的时候,hasNextInt可以帮我判断这个字符是不是数字,而不是接收数值,在if判断通过之后执行接收

2.方法定义

public static 返回值类型 方法名(形式参数列表){

        方法体;

        (return 返回值);

}

public static void add(int a, int b) {

System.out.println(a + b);

}

3.方法调用

public static void main(String[] args){
        int x = 1;

        int y = 2;

        add(x , y):

}

3.接收方法的返回值

public class Main {
    public static int add(int a, int b){
        return a + b;
    }

    public static void main(String[] args) {
        int x = 1;
        int y = 2;
        //接收方法的返回值
        int ret = add(x,y);
        System.out.println(ret);
    }
}

4.注意

1.修饰符:现阶段直接使用public static固定搭配

2.返回值类型:如果方法有返回值,返回值类型必须与返回的实体类型一致,如果没有返回值,必须写成void

3.方法名字:使用小驼峰命名

4.参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间用逗号隔开

5.方法体:方法内部要执行的语句

6.在java中方法必须写在类中

7.在java中,方法不能嵌套定义

8.在java中没有方法声明一说

5.方法调用的执行过程

 例子1

public class Main {
 
    public static int add(int x,int y) {
        System.out.println("调用方法中 x = " + x + "y = " + y);
        return x + y;
    }
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println("第一次调用方法之前");
        int ret = add(a,b);
        System.out.println("第一次调用方法之后");
        System.out.println("ret = " + ret);

        System.out.println("第一次调用方法之前");
        ret = add(30,50);
        System.out.println("第一次调用方法之后");
        System.out.println("ret = " + ret);
    }
}

运行:

第一次调用方法之前
调用方法中 x = 10y = 20
第一次调用方法之后
ret = 30
第一次调用方法之前
调用方法中 x = 30y = 50
第一次调用方法之后
ret = 80
 

例子2

public class Main {
   
    public static int facSum(int n){
        int sum = 0;
        for(int i =1; i<= n; i++){
            sum +=fac(i);
        }
        return sum;
    }

    //求n的阶乘
    public static int fac(int n){
        int ret = 1;
        for(int i = 1;i < n; i++){
            ret *= i;
        }
        return ret;
    }

    public static void main(String[] args) {

        int ret = facSum(5);
        System.out.println(ret);
    }
}

6.实参和形参的关系

Java中方法的形参就相当于sum函数中的自变量n,用来接收sum函数在调用时传递的值。形参只是方法在定义时需要借助的一个变量,用来保存方法在调用时传递过来的值。

 这样的交换是不能运行的,需要使用数组来进行,数组是在堆上面储存的

public static void swap(int[] arr){
    int tmp = arr[0];
    arr[0] = arr[1];
    arr[1] = tmp;
}


public static void main(String[] args) {
    int[] arr = {10, 20};
    swap(arr);
    System.out.println("arr[0] = " + arr[0] + "arr[1] = " + arr[1]);
}

Java遇到return就结束了,之后的语句就执行不到了。

7.方法的重载

public static int sum(int a, int b){
    return a + b;
}
public static double sum(double a,double b){
    return a + b;
}

public static void main(String[] args) {
    int a = 10;
    int b = 20;
    int ret = sum(a, b);
    System.out.println(ret);
    double x = 2.3;
    double y = 3.6;
    double ret1 = sum(x,y);
    System.out.println(ret1);
}

1.方法名称必须一样的

2.方法的参数不一样【数据类型,个数,顺序】

3.返回值没有要求

一。使用函数求最大值。

创建方法求两个数的最大值max2,随后在再写一个求3个数的最大值的函数max3,要求:(在max3这个函数中,调用max2这个函数,来求三个数的最大值。

 求两个数的最大值
public static double max2(double a, double b){
    return a > b ? a : b;
}
 求三个数的最大值
public static double max3(double a, double b, double c){
    double ret = max2(a,b);
    max2(ret,c);
    return ret;
}

public static void main(String[] args) {
    double a = 15.3;
    double b = 9.5;
    double ret = max2(a, b);
    System.out.println(ret);
    double x = 84653.485;
    double y = 56123.01523;
    double d = 56322.48563;
    double ret1 = max3(x,y,d);
    System.out.println(ret1);

}

二。求n的阶乘并打印成果

public static int facSum(int n){
    int sum = 0;
    for(int i =1; i<= n; i++){
        sum +=fac(i);
    }
    return sum;
}

//求n的阶乘
public static int fac(int n){
    int ret = 1;
    for(int i = 1;i < n; i++){
        ret *= i;
    }
    return ret;
}
public static void main3(String[] args) {
    
    int ret = facSum(5);
    System.out.println(ret);

三。斐波那契数列,使用迭代(循环)实现

求斐波那契数列的第n项的值

public static int fib(int n){
    int f1 = 1;
    int f2 = 1;
    int f3 = 1;
    for (int i = 3; i <= n  ; i++) {
        f3 = f1 + f2;
        f1 = f2;
        f2 = f3;
    }
    return f3;
}

public static void main(String[] args) {
    System.out.println(fib(1));
    System.out.println(fib(2));
    System.out.println(fib(30));
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值