您所在的位置:主页 > JAVA技术 >

什么是面向过程与方法

时间:2014-09-29 16:36来源:未知 作者:疯狂java 点击:

  

  什么是面向过程与方法

  面向过程编程是上世纪70年代即提出的编程思路,其主要精神是“自顶向下,逐步细分”。“面向过程”是一种以事件为中心的编程思想、即分析出解决问题所需要的步骤,然后用函数(也就是方法)将这些步骤一一实现,再依次调用组合为完整的解决方案。采用面向过程编程的代码具有以下优点:

  1. 问题通过不断分解后转换为相对简单的小问题,降低变成复杂度。

  2. 使用函数(方法)封装解决问题的方法,上一层不用关心底层的实现细节。

  3. 函数可以被重用,减少代码冗余。

  可见面向过程编程的核心就是方法的封装。Java虽然是面向对象的语言,但是也是在面向过程的基础上发展来的,方法依然是构成Java程序的基本单位。Java中声明一个方法的语法如下(方括号中为可缺省内容):

  [修饰符] 返回值类型 方法名称([参数]){

  方法体

  }

  以最常见的main方法为例,public与static是main方法的两个修饰符,void是main方法的返回类型,String[] args是main方法的参数。方法定义完成后可以通过方法名多次进行调用,下例分别定义了三个方法用于计算两数相加:

  public class BaseFunction {

  public static void main(String[] args) {

  add1();

  add2(20, 30);

  int c = add3(10, 20);

  System.out.println(c);

  }

  //没有参数和返回值的方法

  public static void add1() {

  int a = 5, b = 10;

  System.out.println(a + b);

  }

  //有参数,没有返回值的方法

  public static void add2(int a, int b) {

  System.out.println(a + b);

  }

  //有参数,有返回值的方法

  public static int add3(int a, int b) {

  return a + b;

  }

  }

  从上例中可以看出,没有参数和返回值的方法调用最简单,但因为缺少灵活性,重用性不强。设计一个好的方法应该尽量少传参数,但是必要的参数一定要有,如果方法计算完成后需要反馈结果,应该通过return语句将返回值返回,需要注意return语句同时具有结束方法执行的功能。

  Java中的方法有如下语法规则需要注意:

  1. 方法即使没有参数,定义时也需要加上一对圆括号。

  2. 方法如果没有返回值,定义时也要将返回类型写为void。

  3. 如果方法定义了返回类型,则一定要在方法中使用return关键返回结果。

  4. 如果方法定义了返回类型并包含分支流程,要确保方法无论执行哪一路分支最后都能返回结果

  5. 方法只能定义一种返回类型。

  下面是一些典型的方法练习:

  public class Function1 {

  public static void main(String[] args) {

  System.out.println(max(10, 20, 30));

  System.out.println(repeatString('*', 10));

  System.out.println(maxInArray(new int[]{10,20,30,33}));

  }

  //传入三个数,返回最大的一个

  public static int max(int a, int b, int c) {

  if (a > b) {

  if (a > c) {

  return a;

  } else {

  return c;

  }

  } else {

  if (b > c) {

  return c;

  } else {

  return c;

  }

  }

  }

  //传入字符和重复次数,返回结果

  public static String repeatString(char c, int repeatTime) {

  StringBuilder sb = new StringBuilder();

  for (int i = 0; i < repeatTime; i++) {

  sb.append(c);

  }

  return sb.toString();

  }

  //求数组中的最大值:传入整型数组,返回其中的最大值

  public static int maxInArray(int[] array) {

  int max = array[0];

  for (int i = 1; i < array.length; i++) {

  if (max < array[i]) {

  max = array[i];

  }

  }

  return max;

  }

  }