四、java----函数

说到函数有些人就要问了,Java中函数的存在有什么意义呢?

下面就让我给大家总结一下函数在Java中存在的意义:

1.函数主要解决的是那些重复的且具有独立功能的代码段

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

3.很明先的优势,降低了代码冗余复用函数即可,降低了主函数的代码量,将主函数进行适当的拆分,以便内存优化

4.就是将函数模块化

 说完了它存在的意义接下来我们来总结一下函数的定义:

函数是定义在类中的具有特定功能的一段独立小程序,函数也称之为方法。

那设定函数的作用是什么呢?为了提高代码的复用性,对代码进行抽取。将这个部分定义成一个独立的功能,进行再次封装,以便再次或多次使用。 java中对功能的定义通过函数来实现的。

相比于其他方法,设定函数有什么优势?通过下图我们可以发现,函数可以将代码进行适当的拆分,这样就降低了主函数的代码量,并且复用函数可以大大降低代码冗余,以便内存优化。
 

补充:

/*
 * 函数的构成:修饰词    返回值    函数名(参数列表){//函数体
 *     执行的代码
 * return 返回值;
 * 
 * }
 * 
 * 修饰词:确定当前函数的使用范围,现在使用的是public,暂时不考虑
 * 返回值类型:告诉别人当前函数返回值的类型,返回值可以没有,但是不能什么都不写,如果有返回值鞋型对应的类型,如果没有用void
 * 函数名:是当前函数的名字,不能不写,命名规则:遵守小驼峰规则(可以由多个单词组成,除第一个单词外,其他每个单词首字母大写)
 * 要求:尽量做到见名知意
 * 参数列表:执行函数式传入函数的数据,可以有零个或多个,多个参数之间以,隔开,如果没有参数函数名后面的小括号不能省略
 * 函数体:函数真正实现功能的地方
 * 执行语句:实现的功能
 * return:是一个动词,向函数外抛出返回值的意思,类型与返回值类型一致
 * 注意:1.如果没有返回值,不用写return,如果有return后面只能返回一个值
 * 2.还有结束的意思,return后面的代码不会执行
 */

总结:我们在创建函数的时候,要求每一个函数只完成一个功能

下面我们就以一个简单的例题来让我们了解函数吧!

import java.util.Scanner;
// 求两个数的和?
//注意:
//1.函数的定义不能嵌套,函数的调用可以
//2.我们要想使用定义好的函数,必须通过调用实现
//3.函数调用的基本构成:函数名+()
//4.通常在面向过程语言中我们称为函数,在面向对象语言中我们称为方法
//函数的调用
class Test01{
    public static void main(String[] args) {
        int sum = qiuhe();
        System.out.println(sum);
    }

    public static int qiuhe() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入a:");
        int a = scanner.nextInt();// 输入a
        System.out.println("请输入b:");
        int b = scanner.nextInt();// 输入b
        return a + b;
    }

}
import java.util.Scanner;
/*
 * 用函数求两个数的最大值
 * 两个数最大值,使用三目运算符
 */

public class Test02{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入a:");
        int a = scanner.nextInt();// 输入a
        System.out.println("请输入b:");
        int b = scanner.nextInt();// 输入b
        int max = isMax(a, b);
        System.out.println(max);
    }

    public static int isMax(int a, int b) {
        int max = a > b ? a : b;
        return max;
    }
}

下面我来为大家介绍一下函数的分类:

 

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

 注意:

有返回值的函数,参与运算、输出、赋值 ; 无返回值的函数,仅仅调用.

 

下面我们来了解一下函数的传参:

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

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

实参表面上是将一个数据常量传递给了形参,其实不是,而是将常量在常量池中的地址(常量的地址)传递给了形参,还有一种是将对象在堆内存中的地址传递给了形参.

既然是函数,那么肯定会有变量,在函数中创建的变量我们就叫做局部变量。局部变量只在当前函数中起作用。形式参数一定是局部变量,但是局部变量不一定都是形式参数.

下面我们用一段代码来简单了解一下传参的基本流程:


main(){
    int a=4;
    int b=4;
    double c=pow(a,b);
}
pow(a,b){
    ...
    return sum;
)

 

在函数调用其他函数时,等到其他函数运行完毕后主函数接着运行,这就是就引出了函数栈.

函数的运行是基于栈内存的

栈是Java语言中非常重要的一个知识点,那什么是栈呢?我们可以把栈比作是一个弹夹,子弹从弹夹上面依次装入,然后子弹要从弹夹的上面至下依次装入枪膛中.那么函数中的return自然就相当于将子弹发射出去,也就是我们说的函数运行完后返回函数值,然后此函数弹出栈内存——弹栈。

下面我们看一个弹栈的动态图解来了解弹栈:

 最后让我们来了解一下函数的重载.

重载的概念:

在同一类中,允许存在一个以上的同名函数,只要他们的参数个数或参数类型不同即可.

重载的特点:

与返回值类型无关,只看参数列表.

重载的好处:

方便阅读,优化了程序设计.

重载的实例


//返回两个整数的和
int add(int x,int y){
    return x+y;
}

//返回三个整数的和
int add(int x,int y,int z){
    return x+y+z;
}

//返回两个小数的和
int add(double x,double y){
    return x+y;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值