函数

函数

定义:函数主要解决那些重复的并且具有独立功能的代码段,将这些代码进行再次封装就成为了函数。

函数的作用:可以在主函数中调用,有利于减少主函数的代码量。可以将函数模块化,便于优化内存。

函数的格式:

  1. 访问权限(函数使用范围):public(共有 ) protected(受保护的)  默认(什么也不写)  private(私有的)
  2. 函数类型(函数的类型分类,也就是场景和场合):static(静态)  默认(成员函数)abstrac本地t(抽象) native()
  3. 返回值类型:void(无返回值类型)
  4. 函数名(自定义的名称)
  5. 函数体:具有独立功能的代码块
  6. return本身表示结束当前函数,如果函数有返回值,return必须写,反之则不
  7. 返回值:指的是这一具有独立功能的代码块的运算结果,这个运算结果需要传递给外界(配合return使用)。
  8. 返回值类型:就是返回值的数据类型(可兼容即可)。

常见的函数

class D05{
    public static void main(String[] args){
    }
}

class 为类名

public表示访问权限为公开

static表示此函数为静态函数

void表示无返回值

main为函数名

String[]表示一个字符串数组

args 表示数据类型的变量名称

此处无return是因为void表示无返回值,所以return省略

函数的分类

  1. 有返回值有参数
  2. 有返回值无参数
  3. 无返回值有参数
  4. 无返回值无参数

函数的传参

实际参数(实参)——就是在调用函数的时候,给函数传递的数据(常量、变量)。

形式参数(形参)——就是定义函数的时候,参数列表当中的数据。

在常量中是将常量在常量池中的地址传递给参数,在对象时是将对象在堆内存的地址传递给参数

函数的栈运行方式

栈的运行方式为先进后出后进先出,意味着main函数先运行进栈,再定义的函数进栈,弹栈(又称出栈)先由定义的函数开始出栈,在将main函数弹栈。

函数的重载

函数的重载就是同一个类中出现同名的函数,与权限,返回值类型和参数名无关,至于参数列表以及参数类型有关。

int a = 1;
int b = 2;
//1.
public static double add(double a ,double b){
    return a+b;
}
//2.
public static int add(int a, int b){
    return a+b;
}
//3.
public static int add(int c, int d){
    return c+d;
}

1和2 就是重载函数,而1和3或者2和3不是重载函数。

好处

函数的重载可以扩展我们函数的功能。

寻找合适函数流程

例如:int +int 先寻找是否有(int ,int),若没有寻找(double,double),最后寻找(double,int)或者(int,double)。

函数的递归

函数的递归是分治法的一种表达,在某些情况下迭代无法解决的问题可以用递归来解决。分治法就是将大的问题化小直至不能再分解,简而言之,分治法其实也就是一种暴力破解法。递归法就是先递后归,我们可将其分为三段,分别为前进段、结束段、返回段。前进意味着将大化小,化到最小结束,在逐层归回。

递归的举例:

斐波那契数列前二十项

class Test02{
    public static void main(String[] args){
      for(int i=1;i<=100;i++){
            System.out.println(fibo(i));
      }
    }
   public static int fibo(int n){
        if(n==1||n==2){
            return 1;
        }
        return fibo(n-1)+fibo(n-2);
    }
}

常见函数

math类:

  1. Math.ceil-----向上取整
  2. Math.floor-----向下取整
  3. Math.hypot-----两点间距离
  4. Math,max(a,b)---求a b 的最大数
  5. Math,min(a,b)---求a b 的最小数
  6. Math.pow(a,b)----a的b次方
  7. Math.sqrt()---开方

String类:

  1. String.length()----字符串的长度
  2. char charAt()----指定位置的字符
  3. contain()----判断指定子串是否包含
  4. compareTo()----按字典顺序比较两个字符串
  5. endswith()------判断指定子串是否以某字符结尾
  6. equals()------比较两字符串是否相等

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值