算法(第4版)-1.1.6 静态方法

总结:本小节讲述了静态方法的定义,调用静态方法产生的结果,几点方法的性质,递归,基础编程模型以及模块化编程的含义。

重点:

1.本书中的所有Java程序要么是数据类型的定义,要么是一个静态方法库。在许多语言中,静态方法被称为函数,因为他们和数字函数的性质类似。

2.方法需要参数(某种数据类型的值)并根据参数计算出某种数据类型的返回值(例如数学函数的结果)或者产生某种副作用(例如打印一个值)。

3.方法处理的是参数的值,而非参数本身。这种方法产生的结果是在静态方法中改变一个参数变量的值对调用者没有影响。

值传递也意味着数组参数将会是原数组的别名--方法中使用的参数变量能够引用调用者的数组并改变其内容(只是不能改变原数组变量本身)。

public class TestArray {
    public static void main(String[] args) {
        double[] a;
        a = new double[5];
        sort(a);
        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
        }
    }

    public static void sort(double d[]) {
        for (int i = 0; i < d.length; i++) {
            d[i] = 5.0;
        }
    }
}

上面的例子中,由于sort()传入数组a的别名d,并且改变d的内容,使得原数组a的内容也被改变。

4.使用递归的原因:

· 递归代码比相应的非递归代码更加简洁优雅、易懂。

· 我们可以使用数学模型来估计程序的性能。

5.编写递归代码时最重要的有以下三点:

· 递归总有一个最简单的情况--方法的第一条语句总是一个包含return的条件语句。

· 递归调用总是去尝试一个规模更小的子问题,这样递归才能收敛到最简单的情况。

· 递归调用的父问题和尝试解决的子问题之间不应该有交集。

6.静态方法库是定义在一个Java类中的一组静态方法(包含一个main()方法)。

7.模块化编程带来的好处(P15)

原文地址:https://www.cnblogs.com/iguure/p/5954877.html