Java 用函数的模块化思想来设计程序 您所在的位置:网站首页 函数模块化程序设计视频 Java 用函数的模块化思想来设计程序

Java 用函数的模块化思想来设计程序

2024-07-10 08:04| 来源: 网络整理| 查看: 265

在学习Java中的函数之前,大家是否了解了点函数了呢?无论有没有了解过函数,接下来就看看我一个Java小白对函数的理解吧

为什么要有函数呢?

软件工程的中心目标之一是程序的模块化和可重用性,Java中提供的了一些有助于完成这目标的有效结构,这种结构就叫做函数或方法。

当然Java中也有自带的常用函数(点击~~>常用函数,即可查看)以下主要介绍的是程序员自定义的函数:

下面介绍函数在Java中的结构(即语法): public static void main(String[] args){ 函数体; }

这是Java初学者遇到的第一个函数,我们称它为main函数(主函数);

让我们看看这个函数是由什么构成的:

函数的权限 public主函数是公开权限(最大权限)函数的状态类型 static主函数是静态函数函数的返回值类型 void该函数没有返回值函数名 main主函数的名称括号内的是参数(可以是一个,也可以是多个) String[] 表示的是一个字符串数组(数据类型)                                                                              args 就是这个数据类型的变量名称

函数体{}内 是函数具体执行的部分执行到最后会由return;来结束函数,也称函数的弹栈(这是函数栈性执行的特点,在下文中会详细介绍)。如果后面跟着一个返回值(若没有返回值,return可以省略),那么函数弹栈时会有返回值返回到调用的函数中(函数之间的调用在下文详细介绍)

所以函数的结构组成就是:

权限 状态类型 返回值类型 函数名(参数){

           函数体;

           return 返回值;

}

 了解了函数结构后那我们就来敲代码吧!!(体现一下函数的作用)

来编写一个能算a^{x}的值的程序,其中a为任意实数,x为任意整数,代码可以算出任意个值。

 在没学函数之前我们会将代码都写在main函数中,代码如下:

 如果我们要在程序结束前算多个值,就需要重复写多次相似的代码,程序看上去就会比较繁杂

class Demo{ public void main(String[] args){ //算2^4 double a = 2; int x = 4; double sum = 1; if(x==0 && a!=0){ System.out.println(1); return; } for(int i = 1;ib){ max=a; }else{ max=b; } return max; }

函数重载后,当调用函数时,会自动根据参数类型或参数个数来寻找适当的函数,寻找函数会有以下几点规则:

寻找适当函数的规则 1.看是否有确切的参数定义 int+int 查看是否有(int,int) 2.看是否有可兼容的参数定义 int+int 查看是否有(double,double) 3.如果可兼容的参数定义有多个int+int、(double,int)或(int,double)此时报错 引用不明确(这里未举例)

函数的递归调用

函数调用自身的操作称为递归,递归流程:当函数在执行时,函数体中有调用自身的函数存在时,会先调用自身,如果函数不弹栈,那么该调用会一直重复,就好比死循环一样。所以程序员需要让函数在一定条件下弹栈。

递归有三个过程:

前进段:指递的过程,调用自身,将大问题化小

结束段:问题已经化到最小,解决最小的问题

返回段:将最小问题解决完后,向着大问题返回

下面是递归调用的流程:

 

递归就是函数在进栈,递归的次数越多,内存占的越大,是无法避免的。

那么递归能解决哪些问题呢?

一般而言,循环能解决的问题用递归也能解决,但是递归能解决的问题循环不一定能解决。

递归是分治法的一种实现方式,分治法就是将一个大问题拆成一个个小问题求解,最后再将这些解合并。

下面用递归的方法来寻找斐波那契数列:

斐波那契数列:1 1 2 3 5 8 13 21……,除第1、2项外,其他项等于前两项的和。

寻找前20位斐波那契数列代码如下:

class Demo{ public static void main(String[] args){ for(int i=1;i 汉诺塔,即可阅读解析)

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有