java函数

什么是函数?

函数是一段可以完成某个独立功能的代码,比如下面的代码短就是完成判断素数的功能。

private static boolean isPrime(int n) {

……

}

 

形式参数:在定义函数时给的参数叫做形式参数(形参),参数叫什么名字与功能无关,当然需要遵循见名思议的原则。

 

实际参数:在调用函数是给的参数叫做实际参数(实参),实参在调用时必须具有实际的值。

public class E201_06_01_输出100以内的素数 {
    public static void main(String[] args) {
        for (int n = 2; n <= 100; n++) {
            if (isPrime(n)) {
                System.out.printf("%5d", n);
            }
        }
    }
    /**
     * 判断素数
     * @param n 待判断的数
     * @return true-是素数,false-不是素
     */
    private static boolean isPrime(int n) {
        for (int sun = 2; sun <= Math.sqrt(n); sun++) {
            if (n % sun == 0) {
                return false;
            }
        }
        return true;
    }
}

 

文档化注释

 

在函数上方输入/**回车即可

 好处:不用打开代码即可查看函数的说明信息

 

为什么需要函数呢?

    将大的、复杂的问题分解为若干个小的、简单的问题去求解,能有有效地帮助我们轻松解决复杂问题。

函数的本质是什么?

函数就是一个数据加工的黑箱子,我们不应关注它的内部实现细节,而是关注它外部的信息,比如这个箱子是干什么的(功能)、需要给她什么(参数)以及它可以得到什么结果(返回值)

对程序员而言,更重要的是函数的设计,而不是实现。

函数设计三要素:

            (1)函数名:见名思议,也就是根据功能定名字

            (2)参数:考虑要实现这个功能,需要外部提供什么。

            (3)预期结果(类型):如果函数正确执行,应该得到的结果的类型

切记,设计函数只需要回答三要素是什么,不能去考虑如何实现,或者说代码怎么写!

 

案例:哥德巴赫猜想改进

  将原来的判断能否分解的函数改造成分解函数,其返回值表达的含义有两层:

(1)能否分解

(2)怎么分解

难题:return只能返回一个数,但是根据上面的要求需要返回三个数,怎么办?

有人可能提出在分解的函数中同时进行输出,如下的代码

private static boolean canSplit(int n){
        int i = 0;
        for (int m = 3;m<n/2;m+=2){
            if(isPrime(m)&&isPrime(n-m)){
                System.out.printf("%d=%d+%d\n",n,m,n-m);
                return true;
            }
        }
        return false;
    }

 

这种做法不好,理由:

 

(1)函数的功能要尽量单一,不要将多个功能揉在一起。

(2)如果在函数直接进行输出,可能会导致这个函数的可重用性变差,比如你用中文输出,那外国程序员就没办法用你的函数了。

 

分析与总结:

要实现某一功能,把其定义为一个函数封装起来 就可以重复多次使用;这样一来,main函数里的代码减少了

提高了程序可读性等,但应注意自定义的函数应写在main函数之外而class类中------->即自定义的函数写在main函数之外但

和main函数在同一个class类中。需要用到定义的函数时,只需在main函数中进行调用即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值