对初学者友善的系列文章-了解Java方法

    在本教程中,您将借助示例了解Java方法,如何定义方法以及如何在Java程序中使用方法。

1. 什么是方法?

    在数学中,我们可能已经研究过函数。例如,f(x) = x2是一个函数,返回一个x平方值。

If x = 2, then f(2) = 4
If x = 3, f(3) = 9
and so on.

    同样,在计算机编程中,函数是执行特定任务的代码块。
    在面向对象编程中,方法是用于函数的行话。方法绑定到类,并定义类的行为。在学习方法之前,请确保了解Java类和对象

2. Java方法的类型

    根据用户定义的方法还是标准库中可用的方法,Java中有两种类型的方法:

  • 标准库方法
  • 用户定义的方法

3. 标准库方法

    标准库方法是Java中的内置方法,可以随时使用。这些标准库与Java类库(JCL)一起出现在JVM和JRE的Java归档文件(*.jar)中。
    例如,

  • print()是java.io.PrintSteam的一个方法。该print("…")方法在引号内打印字符串。
  • sqrt()是一种Math类的方法。它返回一个数字的平方根。

    示例:

public class Main {
    
    
    public static void main(String[] args) {
    
    
    
        // using the sqrt() method
        System.out.print("Square root of 4 is: " + Math.sqrt(4));
    }
}

    输出:

Square root of 4 is: 2.0

4. 用户定义的方法

    我们也可以选择自己创建的方法来执行某些任务。这种方法称为用户定义方法。

4.1 如何创建用户定义的方法?

    这是我们如何用Java创建方法:

public static void myMethod() {
    
    
    System.out.println("My Function called");
}

    在这里,我们创建了一个名为myMethod()的方法。我们可以看到,在方法的名称之前,我们已经使用了public,static和void。

  • public - 访问修饰符。这意味着可以从任何地方访问该方法。
  • static - 这意味着不需要任何对象就可以访问该方法。
  • void - 这意味着该方法不返回任何值。我们将在本教程的后面部分了解更多信息。

    这是一个如何创建方法的简单示例。但是,Java中方法定义的完整语法是:

modifier static returnType nameOfMethod (parameters) {
    
    
    // method body
}

    这里,

  • modifier - 它定义访问类型,方法是public,private等等。
  • static - 如果我们使用static关键字,则可以在不创建对象的情况下访问它。例如,标准Math类中的sqrt()方法是静态的。因此,我们可以无需创建Math类的实例,直接调用Math.sqrt()。
  • returnType - 它指定一个方法返回的值的类型,例如,如果一个方法具有int返回类型,那么它将返回一个整数值。
    一种方法,可以返回原始数据类型(int,float,double等),原生对象(String,Map,List等),或任何其他的内置和用户定义的对象。
    如果该方法无返回值,则其返回类型为void。
  • nameOfMethod - 它是一个标识符,用于引用程序中的特定方法。
    我们可以给一个方法取任何名字。然而,更传统的做法是用它执行的任务来命名它。例如,calculateArea()、display()等。
  • parameters (arguments) - 这些是传递给方法的值。我们可以将任意数量的参数传递给方法。
  • method body - 它包括用于执行某些任务的编程语句。方法体被括在大括号{}内。

5. 如何调用Java方法?

    既然我们知道了如何定义方法,我们需要学会使用它们。为此,我们必须调用方法。方法如下:

myMethod();

    此语句调用前面声明的myMethod()方法。
Java中方法调用的工作方式

  1. 在执行程序代码时,在代码中遇到myFunction();
  2. 然后执行分支到myFunction()方法,并执行方法主体内的代码。
  3. 在方法体执行之后,程序返回到原始状态,并在方法调用后执行下一条语句。
5.1 示例:Java方法

    让我们看看如何在Java程序中使用方法。

class Main {
    
    

    public static void main(String[] args) {
    
    
        System.out.println("About to encounter a method.");

        // method call
        myMethod();

        System.out.println("Method was executed successfully!");
    }

    // method definition
    private static void myMethod(){
    
    
        System.out.println("Printing from inside myMethod()!");
    }
}

    输出:

About to encounter a method.
Printing from inside myMethod().
Method was executed successfully!

    在上面的程序中,我们有一个名为myMethod()的方法。该方法不接受参数。另外,方法的返回类型是void(意味着不返回任何值)。
    这里,方法是静态的。因此,我们在没有创建类的对象的情况下调用了该方法。
    让我们看另一个示例:

class Main {
    
    

    public static void main(String[] args) {
    
    

        // create object of the Output class
        Output obj = new Output();
        System.out.println("About to encounter a method.");

        // calling myMethod() of Output class
        obj.myMethod();

        System.out.println("Method was executed successfully!");
    }
}

class Output {
    
    
  
    // public: this method can be called from outside the class
    public void myMethod() {
    
    
        System.out.println("Printing from inside myMethod().");
    }
}

    输出:

About to encounter a method.
Printing from inside myMethod().
Method was executed successfully!

    在上面示例中,我们创建了一个名为myMethod()的方法,该方法在Output类中。
    由于方法不是静态的,因此使用类的对象obj调用它:

obj.myMethod();

6. 方法参数和返回值

    如前所述,Java方法可以有零个或多个参数。而且,它还可能返回一些值。

6.1 示例:方法的返回值

    让我们以一个返回值的方法为例:

class SquareMain {
    
    
    public static void main(String[] args) {
    
    
        int result;

        // call the method and store returned value
        result = square(); 
        System.out.println("Squared value of 10 is: " + result);
    }

    public static int square() {
    
    
        // return statement
        return 10 * 10;
    }
}

    输出:

Squared value of 10 is: 100

    在上述示例中,我们创建了一个名为square()的方法。这个方法不接受参数,同时返回 10 * 10的结果。
    在这里,我们已经提到方法的返回类型为int。因此,该方法应该始终返回一个整数值。
返回值的方法的表示

    我们可以看到,这个方法的作用范围是有限的,因为它总是返回相同的值。现在,让我们修改上面的代码片段,让它返回传递给方法的任何整数的平方值,而不是总是返回10的平方值。

6.2 示例:方法接受参数并返回值
public class Main {
    
    
   
    public static void main(String[] args) {
    
    
        int result, n;
        
        n = 3;
        result = square(n);
        System.out.println("Square of 3 is: " + result);
        
        n = 4;
        result = square(n); 
        System.out.println("Square of 4 is: " + result);
    }

    // method 
    static int square(int i) {
    
    
        return i * i;
    }
}

    输出:

Squared value of 3 is: 9
Squared value of 4 is: 16

    在这里,square()方法接受参数i并返回i的平方。返回的值存储在变量result中。
在这里插入图片描述

    如果我们传递任何其他数据类型而不是int,编译器将抛出一个错误。这是因为Java是一种强类型语言。
    在方法调用期间传递给getSquare()方法的参数n称为实际参数,简称实参。

result = getSquare(n);

    方法定义接受的参数i称为形式参数。形式参数的类型必须显式类型化。

public static int square(int i) {
    
    ...}

    我们还可以使用逗号将多个参数传递给Java方法。例如:

public class Main {
    
    

    // method definition
    public static int getIntegerSum (int i, int j) {
    
    
        return i + j;
    }

    // method definition
    public static int multiplyInteger (int x, int y) {
    
    
        return x * y;
    }

    public static void main(String[] args) {
    
    

        // calling methods
        System.out.println("10 + 20 = " + getIntegerSum(10, 20));
        System.out.println("20 x 40 = " + multiplyInteger(20, 40));
    }
}

    输出:

10 + 20 = 30
20 x 40 = 800

    注意:实际参数和形式参数的数据类型应匹配,即第一个实际参数的数据类型应与第一个形式参数的数据类型相匹配。同样,第二个实际参数的类型必须与第二个形式参数的类型相匹配,以此类推。

7. 使用方法的优势是什么?

    1. 主要优点是代码的可重用性。我们可以编写一次方法,然后多次使用它。我们不必每次都重写整个代码。例如:

public class Main {
    
    

    // method defined
    private static int getSquare(int x){
    
    
        return x * x;
    }

    public static void main(String[] args) {
    
    
        for (int i = 1; i <= 5; i++) {
    
    

            // method call
            int result = getSquare(i);
            System.out.println("Square of " + i + " is: " + result);
        }
    }
}

    输出:

Square of 1 is: 1
Square of 2 is: 4
Square of 3 is: 9
Square of 4 is: 16
Square of 5 is: 25

    在上面的程序中,我们创建了一个名为getSquare()的方法来计算数字的平方。这里,同样的方法被用于计算小于6的数的平方。
    因此,我们反复使用相同的方法。
    2. 方法使代码更易读,更易于调试。例如,getSquare()方法可读性很强,因此我们可以知道这个方法将计算一个数字的平方。

参考文档

[1]Parewa Labs Pvt.Java InputStream Class[EB/OL].https://www.programiz.com/java-programming/methods,2020-01-01.

猜你喜欢

转载自blog.csdn.net/zsx0728/article/details/109309381
今日推荐