新的挑战

还记得我么们第一讲中的乘法运算吗?

for(int i=1;i<=10;i++) 
	System.out.printf("%d * %d = %d", 5 , i , 5 * i ).println();

5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50

如果我想 打印 6或者7的乘法运算呢? 有没有一种简单的方法?

printMultiTable(5);
printMultiTable(6);

下面让我们开始学习一下Java的方法。

基本方法

那什么是方法呢?

  • 方法是解决一类问题的步骤的有序组合
  • 方法包含于类或对象中
  • 方法在程序中被创建,在其他地方被引用

基础语法

方法被创建在类中,方法创建方式:

修饰 返回值类型 方法名 (参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

下面我们一个一个来看

  • 修饰

    告诉Java编译器,告诉编译器如何调用该方法。定义了该方法的访问类型。

    如果不写的话, 默认会是protected。

public 
protected
private
  • 返回值类型

方法的返回值类型可以是int等基本类型,也可是String等引用类型。

有些方法执行所需的操作,但没有返回值。在这种情况下,就定义为void。

  • 方法名

    方法的实际名称。方法名和参数列表共同构成方法签名。

  • 参数类型

    参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。

    参数可以是 int等基本类型,也可是String等引用类型。

    参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。

  • 方法体

    方法体包含具体的语句,定义该方法的功能。

  • return

    Java的关键字, 在返回类型为Void的时候,可以不写return语句。

    返回值要和返回值类型的类型一致。

下面我们创建我们来写一个方法

  1. 打印两次“Hello World"。

    修饰: 我们指定public。

    返回值类型: 我们不需要返回值。

    方法名: printHelloWorldTwice

    参数类型,参数名: 我们这次不需要。

    方法体:

    System.out.println("Hello World"); 
    System.out.println("Hello World"); 
    

    return: 这里我们省略。

    那么我们把这些组装起来。

    public void printHelloWorldTwice(){
        System.out.println("Hello World"); 
        System.out.println("Hello World"); 
    }
    

    那我们在Main方法里调用一下。

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

    恭喜你,已经可以创建方法。

    下面我们那就看开始我们的练习。

    练习
    1. 创建一个方法, printHelloWorldThrice打印三次HelloWorld并执行它。
    2. 创建一个方法,打印下面的几句话。
    青,取之于蓝而青于蓝;
    冰,水为之而寒于水。
    木直中绳,𫐓以为轮,
    其曲中规,虽有槁曓,
    不复挺者,𫐓使之然也。
    

有参数的方法

为什么我们需要创建两个不同的方法printHelloWorldTwice和printHelloWorldThrice?

如果我们需要打印四次呢?

思考一下!!!

我想你会想到了。

sayHelloWorld(5);
sayHelloWorld(2);

那么我们改如何写呢?

public void printHelloWorld(int numberOfTimes){
    for(int i=1; i<=numberOfTimes; i++) {
        System.out.println("Hello World"); 
     }
}

练习

  1. 创建一个方法,printNumbers(int n)打印数字 从1到n。
  2. 创建一个方法,printSquaresOfNumbers(int n) 打印平方( 如:2 * 2 ) 从1到n。

回到开始的挑战

public void printMultiTable(int number) { 
	for(int i = 1;i <= 10;i++) {
		System.out.printf("%d * %d = %d", number , i , number * i ).println();
	}
}

恭喜你,完成之前的挑战。

方法- 传递多个参数

创建一个方法,并打印计算两个数的和。

public void sumOfTwoNumber(int n1, int n2){
    System.out.printf("%d * %d = %d", n1,  n2 , n1 + n2);
}

方法看可以更好的组织代码, 对于编程来说,他们是很重要的一部分。 所以在为方法命名时候,我们一定要走心,这样我们就可以直接看到看方法名来判断这个方法时干什么的,这个样就可以不用读代码。

方法- 返回值

为了更好地理解返回值的用法,我们练习一个有返回值的方法。

返回值有什么好处,每个方法都需要一个返回值吗?

public int sumOfTwoNumber(int n1, int n2){
    return n1 + n2;
}

练习

  1. 创建一个方法, 返回三个参数的和。

  2. 创建一个方法, 通过给定的两个角的角度,来求三角形的第三角的角度。

    提示; 三角形的三个角的和为180. 你认为这里参数用int好吗?

关于方法的总结

  • 方法
    • 定义, 声明
    • 执行, 调用
  • 方法参数
    • 没有参数
    • 一个或多个
  • 返回值
    • void
    • 基本类型,引用类型