Java方法

时间:2020-01-09 10:34:44  来源:igfitidea点击:

在Java编程语言中,当我们创建类时,它包含变量和方法。在本教程中,我们将学习Java方法。在"编写第一个Java程序"一文中,我们已经看到了一种方法。开始执行程序的主要方法。

Java中的方法

方法是可以通过调用该方法来执行的语句的集合,并且在执行语句后它可能会返回也可能不会返回值。

Java中方法的语法如下:

Access_modifier return_type methodName(parameter-list) {
  // body of method
}

Java方法中的组件

Java中的方法由以下组件组成:

1.访问修饰符–所有四个访问修饰符-公共,私有,受保护,默认均可与该类的方法一起使用。

  • 如果一个方法被声明为public,那么它对于同一包或者其他包中的所有类都是可见的。

  • 如果将一个方法声明为私有方法,则只能在其自己的类中访问该方法。

  • 如果某个方法被声明为受保护,那么即使在不同的程序包中,同一包中的任何类或者任何子类(声明方法的类)都可以访问该方法。

  • 如果一个方法具有默认的访问说明符(没有访问说明符声明),则该方法可由同一包中的任何类访问。

2.返回类型–方法可以返回一个值,并且该值的类型应指定为返回类型。如果某个方法没有返回值,则应将返回类型指定为void。

3.方法名称-方法应具有标识该方法的名称。该名称用于调用方法。类中的方法名称不必唯一,但是具有相同名称的方法被认为会使该方法超载,并且需要遵循某些规则。

4.参数列表–我们可以将参数传递给方法,并且应将其作为逗号分隔的输入参数列表进行传递,并在其数据类型之前加上括号()。如果没有参数,则必须使用空括号。

5.方法主体–方法主体,括在括号{}之间,它包含方法的代码以及局部变量的声明。

6.异常列表-方法也可以使用throws子句指定预期将抛出的异常列表。

7.静态方法–我们也可以将方法声明为静态。静态方法与该类相关联,可以使用类名称(如ClassName.static_method())直接调用它。我们无需创建类的实例即可调用静态方法。

这是一个Java方法声明的示例,它是一个公共方法,它使用两个整数作为参数,并且还返回一个int类型的值。

public int doAddition(int i, int j){
  int sum = i + j;
  return sum;
}

Java中的方法命名约定

尽管方法名称可以是任何合法标识符,但是代码约定限制了方法名称。按照惯例,方法名称应为小写动词或者以小写动词开头的多词名称,后跟形容词,名词等。如果方法具有多词名称,则第二个字母的第一个字母随后的单词应大写(称为驼峰大小写)。这里有些例子:


doAddition
getFinalData
是空的

Java方法示例

调用方法时,它将执行方法主体,并返回到以下之一之后的调用点:

  • 它将完成方法中的所有语句。

  • 到达返回语句。

  • 发生异常,方法抛出该异常。

1返回值的方法–在第一个示例中,有一个方法doAddition(),该方法将两个整数作为参数并返回这两个整数的和。

public class MyClass {
  public static void main(String[] args) {
    MyClass obj = new MyClass();
    // calling method
    int sum = obj.doAddition(5, 10);
    System.out.println("Sum is- " + sum);	
  }

  public int doAddition(int i, int j){
    int sum = i + j;
    return sum;
  }
}

输出:

Sum is- 15

2没有返回值的方法(void)–在此Java方法示例中,有一个方法display()带有一个String参数,返回类型为void。

public class MyClass {
  public static void main(String[] args) {
    MyClass obj = new MyClass();
    obj.display("theitroad");
  }

  public void display(String str){
    System.out.println("Hello " + str);
  }
}

输出:

Hello theitroad

3另一个类的调用方法–在此示例中,有两个类ReverseWord和MyClass。在ReverseWord类中,有一个公共方法reverseString(),它使用ReverseWord类的实例从MyClass中调用。

public class ReverseWord {
  public String reverseString(String str){
    // validate String
    if((str == null) || (str.length() <= 1)){
        return str;
    }
    StringBuilder sb = new StringBuilder(str);
    return sb.reverse().toString();
  }
}
public class MyClass {
  public static void main(String[] args) {
    ReverseWord obj = new ReverseWord();
    String reversedString = obj.reverseString("theitroad");
    System.out.println("Reversed String is- " + reversedString);
  }

  public void display(String str){
    System.out.println("Hello " + str);
  }
}

输出:

Reversed String is- edoCpnk

4从另一个方法调用方法–在此示例中,方法1和method2类中有两个方法,而从method1()调用method2()。

public class MyClass {
  public static void main(String[] args) {
    MyClass obj = new MyClass();
    obj.method1();
    System.out.println("After calling method1");
  }

  private void method1(){
    System.out.println("in method1");
    this.method2();
    System.out.println("After calling method2");
  }

  private void method2(){
    System.out.println("in method2");
  }
}

输出:

in method1
in method2
After calling method2
After calling method1

这里要注意的几件事是

  • Access修饰符是方法专用的,因此这些方法只能在此类中使用。

  • 在method1中,使用this关键字调用method2.

  • 从输出中,我们可以看到方法执行完成后如何返回到调用它的位置。

方法的优点

  • 代码可重用性–使用方法的主要优势是代码可重用性。我们可以在方法中编写任何功能,然后在需要该功能时可以调用该方法。

  • 封装–方法有助于实现面向对象的概念封装。任何成员变量都只能通过该类的方法进行操作。

  • 方法还可以通过方法重载和方法重写来帮助实现多态。