【Java学习笔记】JavaSE入门(7)

method(方法)

在学习方法之前,我们应该了解什么是方法?
拿我们之前经常用的输出语句来说:
System.out.println();
System:它是系统中的一个类
out:它是System下的一个输出对象
println() :它就是方法。

即,调用一个系统类标准输出对象out中的println()方法。

方法的定义

Java的方法类似于其他语言的函数,是 一段用来完成特定功能的代码片段

一般情况下,定义一个方法包括以下语法:
方法包含一个方法和一个方法体

下面是一个方法的所有部分:

修饰符 返回值类型 方法名(参数类型 参数名){
   ...
   方法体
   ...
   return 返回值;
}
  • 修饰符: 修饰符,这是可选的,告诉编译器如何调用该方法,定义了该方法的访问类型。
  • 返回值类型: 方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType的是关键字void。
  • void (空的) 没有返回值的情况下,一般都是使用void
  • 方法名: 是方法的实际名称。方法名和参数表共同构成方法签名。
  • 参数类型: 分为形式参数和实际参数两种
    实际参数:实际调用传递给它的参数
    形式参数:在方法被调用时用于接收外界输入的数据(用来定义作用的)
  • 方法体:方法体包含具体的语句,定义该方法的功能。

例子:写一个加法方法,并使用。

package com.java.method;

public class Demo01 {
    //mian方法
    public static void main(String[] args) {
        /*加法方法使用:
        1.输入方法名(); 例如sum();
        2.在括号内输入数值  sum(1,2);
        3.alt+回车
        4.输入输出语句sout,输出方法名
                 */
        int sum = sum(1, 2);
        System.out.println(sum);
        //结果为3
    }

    //加法方法
    public static int sum(int a,int b){
    //public和static都是修饰符
        // int是返回值的类型
      return a+b;
    }
    }

设计方法的原则

一个方法只完成1个功能,这样利于我们后期的扩展。

方法的命名规则

遵循小驼峰:首字母小写,后接驼峰。

方法的调用

调用方法:对象名.方法名(实参列表)

java支持两种调用方法的方式,根据方法是否返回值来选择。
1. 当方法返回一个值的时候,方法调用通常被当作一个值。
例如:int a = max(10,20);

2.如果方法返回值为void,方法调用一定是一条语句。
System.out.println("hello,world!");
拓展:return 0; (终止方法)
package com.java.method;

public class Demo02 {
    public static void main(String[] args) {
        int max = max(1, 2);
        System.out.println(max);

    }

    //比大小
    public static int max(int num1,int num2){

        int result = 0;  //设定一个值,result是结果的意思
        
        if (num1==num2){
            System.out.println("num1=num2");
            return 0;
            //return 除了返回值外,还可以终止方法
        }
        if (num1 > num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }
}

方法的重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数。

方法重载的规则

1.方法名称必须相同

2.参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)

3.方法的返回类型可以相同也可以不相同

4.仅仅返回类型不同不足以成为方法的重载

例子:对Demo01里的加法方法实现重载

package com.java.method;

public class Demo03 {
    public static void main(String[] args) {
        //方法重载
        double sum = sum(9.0, 10.0);
        System.out.println(sum);  //19.0
    }
    //对Demo01里的加法方法实现重载
    public static int sum(int a,int b){
        return a+b;
    }
//答:
    public static double sum(double a,double b){
        return a+b;
    }
}

递归(重点)

递归就是A方法调用A方法,自己调用自己。

注意:基数过大的时候不建议使用!!!


递归结构

递归头:什么时候不调用自身方法。如果没有头将陷入死循环。

package com.javaSe.method;

public class Demo07
  public static void main(String[] args){
    Demo07 test = new Demo07();
    test.test();
}

  public void test(){
      test();
  }
//不断的报错

递归体:什么时候需要调用自身方法。

package com.javaSe.method;

public class Demo07 {
    public static void main(String[] args){
        System.out.println(test(5));  //120
    }

    public static int test(int f){
        if (f==1){ 
        //边界条件:有边界,达到f(1)后就会一步一步返回。
            return 1;
        }else {
       //前阶段:当参数不等于1的时候,就不断调用自身
            return f*test(f-1);
            //后阶段:从最大的参数开始n*(n-1)
        }
    }
}

这个例子涉及到了大学数学的知识:阶乘

阶乘:数字后接!是阶乘的表达方式

1! = 1
2! = 2*1
...
5! = 5*4*3*2*1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值