Java方法
in Java with 0 comment

Java方法

in Java with 0 comment

理论

分析以下程序,不使用“方法”有哪些缺点?

public void method(){
    //需求1:请编写程序计算 1 和 2 的和,并将结果输出:【计算两个int类型数据的和】
    int i = 1;
    int y = 2;
    int r1 = i + y;
    System.out.println(i + "+" + y + "=" + r1);
    
    //需求2:请编写程序计算 10 和 20 的和,并将结果输出:【计算两个int类型数据的和】
    int i2 = 10;
    int y2 = 20;
    int r2 = i2 + y2;
    System.out.println(i2 + "+" + y2 + "=" + r2);
    
    //需求1:请编写程序计算 100 和 200 的和,并将结果输出:【计算两个int类型数据的和】
    int i3 = 100;
    int y3 = 200;
    int r3 = i3 + y3;
    System.out.println(i3 + "+" + y3 + "=" + r3);
}

在Java语言当中有这样一种机制:

解决

学了方法之后,就可以调用某个方法来进行计算,只要给出数据,该方法只需要计算出结果返回

public void method(){
    //需求1:请编写程序计算 1 和 2 的和,并将结果输出:【计算两个int类型数据的和】
    System.out.println("1 + 2 =" + mathFoot(1,2));

    //需求2:请编写程序计算 10 和 20 的和,并将结果输出:【计算两个int类型数据的和】
    System.out.println("10 + 20 =" + mathFoot(10, 20));
 
    //需求1:请编写程序计算 100 和 200 的和,并将结果输出:【计算两个int类型数据的和】
    System.out.println("100 + 200 = " + mathFoot(100, 200));
}

public int mathFoot(int l, int r){
    return l + r;
}

以上程序优点

这样可以重复利用,减少沉余代码。

方法是什么?

方法的本质是什么?

方法定义

实践

public class testMethod {
  public static void main(String[] args){}
}

public 表示公开的

class 表示定义类的关键字

testMethod 是一个类名

表示定义一个公开的类,起名testMethod,由于是公开的类,所以,源文件名必须是:testMethod.java{...} 是类体部分,在类体中不能直接编写Java语句,除变量之外。

public static testMethod {...}

方法出现在类体当中。以下就是一个方法。

public 表示公开的

static 表示静态的

void 表示方法执行结束后没有返回值

main 方法名:主方法,这个是一个程序的入口,这是由JVM调用的方法,一定会执行

(String[] args) 形式参数列表,其中String[]是一种引用数据类型,args是局部变量的变量名

以下只有args这个局部变量的变量名是随意的

主方法就需要这样固定编写,这是程序的入口。「SUM规定的,必须这样写」

public static void main(String[] args){...}

以下是自定义方法,不是程序的入口(编写在类体中)

方法作用:计算两个 int 类型数据的和,不要求返回结果,但是要求将结果直接输出到控制台。

修饰符列表:public static

返回值类型:void

方法名:sum

形式参数列表:(int x, int y)

方法体:主要任务是,求和之后输出计算结果

public static void sum(int x, int y){
  System.out.println(x + "+" + y + "=" + (x + y));
}

以上程序编写好之后需要调用,让main调用sum,这两个方法并没有任何区别,但是mainJVM调用而sum没有方法去调用它。main是由虚拟机(JVM)调用,所以main一定会执行。因为sum是一个静态方法,所以需要指定所在的className。方法可以复用。

sum计算 1 和 2 的和之后打印。

public static void main(String[] args){
  testMethod.sum(23, 1232);
  testMethod.sum(1342, 212);
  testMethod.sum(4211, 4532);
}

在Java中,代码执行总是以同步的形式进行执行,以上代码示例:

以代码块行号为准,当第二行代码执行时,main不会往下执行,它需要等待sum执行完成后才会继续往下走,而走到第三行时又等待sum执行完成后才依次往下执行。方法体内的代码是有顺序的,遵循自上往下依次执行。

整合代码

public class testMethod {
  public static void main(String[] args){
    testMethod.sum(23, 1232);
    testMethod.sum(1342, 212);
    testMethod.sum(4211, 4532);
  }
  public static void sum(int x, int y){
    System.out.println(x + "+" + y + "=" + (x + y));
  }
}

一个方法存在的意义是为了完成某一个功能,如果已经脱离了这个功能,那么它就没有存在的意义。

以下问号的位置是任何一个程序员将来需要攻克的位置

public static ??? 方法名(???){???}
  1. 你觉得方法需要返回什么值比较合适
  2. 这个方法在定义的时候,需要定义什么样的参数
  3. 方法定义好后,方法体内的代码应该怎么去编写