欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

函数

程序员文章站 2022-07-12 10:03:08
...

为什么要有函数的存在:函数主要解决的是那些重复的且具有独立功能的代码段

将这些具有独立功能的代码可以进行再次封装 封装出来的东西就成为是

好处:降低了代码冗余(复用函数),降低了主函数的代码量(将主函数进行适当的拆分,以便内存的优化),就是将函数模块化

函数是如何定义的:访问权限 函数类型 返回值类型 函数名(参数列表){

函数体

return 返回值;}

访问权限:指的是函数的适用范围(内部和外部)public(全局) protected 默认 private

函数类型:指的是函数的类型分类,说的就是函数的具体使用场景和场合

static(静态函数) 默认不写(成员函数) abstract(抽象函数)native(本地函数synchronized(同步函数)

函数名:程序员给这一段代码自定义的名称(标识符)

参数列表:有若干个参数类型,参数名...组成 主要用于接收外部传递给函数的一些数据

函数体:就是那些具有独立功能的代码块

return:仅仅表示结束当前函数,如果有返回值,则函数结束前将返回值

返回值:指的就是这一具有独立功能的代码块的计算结果,需要传递给外界 配合return

返回值类型:就是返回值的数据类型(可兼容)

class Test01{
    /*
    主函数的格式分析
    public 主函数是公开权限 最大权限
    static 主函数是静态函数
    void   该函数没有返回值
    main   主函数的名称
    String[] String[] 表示的是一个字符串数组(数据类型)
    args 就是这个数据类型的变量名称
    番外:我们可以在执行程序的时候 给主函数传递一些参数
    return:发现return不在 
        !!!而是因为函数没有返回值 所以return可以忽略不写 不代表不存在
        !!!return本身表示结束当前函数!
        !!!如果函数有返回值 return 返回值; 必须写
    */
    
    public static void main(String[] args){
        // int a=10;
        // if(a>5){
        //     return; //在此处结束当前函数
        // }
        // System.out.println("来了老弟~");
        // return;(函数没有返回值可省略不写)
        //目前为止 定义函数的时候 只需要考虑
        //返回值类型 函数名 参数列表 函数体 返回值
        /*
        double res=pow(2,4);
        System.out.println(res);
        System.out.println(pow(2,-4));
        double c=pow(2,3)+10;
        
        System.out.println(c);
        show();
        */
       
        //-------↓
        int a=4;
        int b=4;
        double c=pow(a,b);
        System.out.println(c);
    }
    public static double pow(double a,int b){
        if(b==0){
            return 1;
        }
        double sum=1;
        //2^4
        for(int i=1;i<=Math.abs(b);i++){
            sum*=a;
        }
        return b>0?sum:1/sum;
    }
    public static void show(){
        System.out.println("奥利给~~");
    }
    /* 
    切记:千万不要在函数的内部创建函数 函数必须在类里面 函数们之间是平级关系
        在C/C++/Python当中 函数的定义必须在函数调用之前
        在Java当中 随便 之前 之后
    需求:计算a的b次幂(b且是整数)
    2.1^6
    double sum=1;
    for(int i=1;i<=6;i++){
        sum*=2;
    }
    5^8
    double sum=1;
    for(int i=1;i<=8;i++){
        sum*=5;
    }
    a^b
    double sum=1;
    for(int i=1;i<=b;i++){
        sum*=a;
    }
    return sum;
    2^-4
    1/(2^4)
    */
    
}

函数的分类:有返回值有参数  有返回值无参数 无返回值无参数 无返回值有参数

注意:有返回值的函数,参与运算、输出、赋值 

无返回值的函数,仅仅调用,并不能对返回结果进行额外的操作

 // 以下都是错误的对无返回值函数的操作
        // System.out.println(show());
        // int d=show();
        // int e=show()+10;
        //return;

函数传参:

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

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

实参将什么东西传递给了形参:常量在常量池中的地址,对象在堆内存中的地址

局部变量:但凡是在函数中创建的变量 称之为局部变量

形式参数一定是一个局部变量

函数

函数栈:函数的运行是基于栈运行的,栈是一个先进后出的容器

例如:子弹按顺序123456进栈,按顺序654321出栈

可以将每一个函数理解为子弹(函数帧)

 

 

 

asd

相关标签: javase