Java 简明教程

Java - Class Methods

Java Class Methods

class methods 是在 class 中声明的方法。它们执行特定操作,并且可以访问和修改 class attributes

Creating (Declaring) Java Class Methods

类方法声明类似于 user-defined methods 声明,不同之处在于类方法是在类中声明的。

类方法通过指定 access modifier 后跟返回类型、method_name 和参数列表来声明。

Syntax

使用以下语法声明 Java 类方法:

public class class_name {
  modifier returnType nameOfMethod(Parameter List) {
    // method body
  }
}

上面显示的语法包括:

  1. modifier − 它定义方法的访问类型,是否使用它是可选的。

  2. returnType − 返回 data type 的类方法。

  3. nameOfMethod − 这是方法名。方法签名由方法名和参数列表组成。

  4. Parameter List − 参数列表,它是方法的类型、顺序和参数数。它们是可选的,方法可以不带任何参数。

  5. method body− 方法主体通过各种命令定义方法的作用。

Example

下面是上面定义的方法的源代码,名为 minimum()。此方法需要两个参数 n1 和 n2,并返回两者的最小值 −

class Util {
  /** the snippet returns the minimum between two numbers */
  public int minimum(int n1, int n2) {
    int min;
    if (n1 > n2)
      min = n2;
    else
      min = n1;

    return min;
  }
}

Accessing Java Class Methods

要访问一个类方法(公共类方法),首先需要创建一个对象,然后使用该对象,并借助圆点 (.) 算子,您可以访问类方法。

Syntax

使用下面的语法访问 Java 公共类方法:

object_name.method_name([parameters]);

Example

下面是一个示例,演示如何定义类方法和访问类方法。在此,我们创建了一个 Util 类对象,并调用其 minimum() 方法,以获得给定两个数字的最小值 −

package com.tutorialspoint;

class Util {
   public int minimum(int n1, int n2) {
      int min;
      if (n1 > n2)
         min = n2;
      else
         min = n1;

      return min;
   }
}
public class Tester {

   public static void main(String[] args) {
      int a = 11;
      int b = 6;

      Util util = new Util();

      int c = util.minimum(a, b);
      System.out.println("Minimum Value = " + c);
   }
}
Minimum value = 6

this Keyword in Java Class Methods

this 是 Java 中的一个关键字,用作当前类对象的引用,它存在于实例方法或构造函数中。通过使用此关键字,您可以引用类的成员,例如构造函数、变量和方法。

Note− 关键字 this 只用在实例方法或构造函数内

一般来说,关键字 this 用于 −

  1. 在构造函数或方法中,区分具有相同名称的实例变量和局部变量。

class Student {
   int age;
   Student(int age) {
      this.age = age;
   }
}
  1. 在类中,从另一个类中调用一种类型的构造函数(带参数构造函数或默认构造函数)。它称为显式构造函数调用。

class Student {
   int age
   Student() {
      this(20);
   }

   Student(int age) {
      this.age = age;
   }
}

Example: Using this Keyword in Java Class Methods

这是一个使用 this 关键字访问类成员的示例。复制并粘贴以下程序到名为 Tester.java 的文件中。

package com.tutorialspoint;

public class Tester {
   // Instance variable num
   int num = 10;

   Tester() {
      System.out.println("This is an example program on keyword this");
   }

   Tester(int num) {
      // Invoking the default constructor
      this();

      // Assigning the local variable num to the instance variable num
      this.num = num;
   }

   public void greet() {
      System.out.println("Hi Welcome to Tutorialspoint");
   }

   public void print() {
      // Local variable num
      int num = 20;

      // Printing the local variable
      System.out.println("value of local variable num is : "+num);

      // Printing the instance variable
      System.out.println("value of instance variable num is : "+this.num);

      // Invoking the greet method of a class
      this.greet();
   }

   public static void main(String[] args) {
      // Instantiating the class
      Tester obj1 = new Tester();

      // Invoking the print method
      obj1.print();

      // Passing a new value to the num variable through parametrized constructor
      Tester obj2 = new Tester(30);

      // Invoking the print method again
      obj2.print();
   }
}
This is an example program on keyword this
value of local variable num is : 20
value of instance variable num is : 10
Hi Welcome to Tutorialspoint
This is an example program on keyword this
value of local variable num is : 20
value of instance variable num is : 30
Hi Welcome to Tutorialspoint

Public Vs. Static Class Methods

有两种类型的类方法,public 类方法和 static 类方法。public class methods 通过对象访问,而 static class methods 直接访问。您可以直接访问静态方法。

Example

以下示例演示了公共类方法和静态类方法之间的区别:

public class Main {
  // Creating a static method
  static void fun1() {
    System.out.println("fun1: This is a static method.");
  }

  // Creating a public method
  public void fun2() {
    System.out.println("fun2: This is a public method.");
  }

  // The main() method
  public static void main(String[] args) {
    // Accessing static method through the class
    fun1();

    // Creating an object of the Main class
    Main obj = new Main();
    // Accessing public method through the object
    obj.fun2();
  }
}
fun1: This is a static method.
fun2: This is a public method.

The finalize( ) Method

可以定义一种方法,在垃圾收集器对某个对象进行最终销毁之前,将会调用该方法。此方法称为 finalize( ),可用于确保对象干净地终止。

例如,您可以使用 finalize( ) 确保由该对象拥有的打开文件已关闭。

要为类添加一个终结器,只需定义 finalize( ) 方法。每当 Java 运行时准备回收该类的对象时,就会调用该方法。

在 finalize( ) 方法中,您将指定在销毁对象之前必须执行的操作。

finalize( ) 方法具有以下常规形式 −

protected void finalize( ) {
   // finalization code here
}

此处,关键字 protected 是一个说明符,该说明符阻止定义在其类外部的代码访问 finalize( )。

这意味着你无法知道finalize()何时或是否会被执行。例如,如果你的程序在垃圾收集发生之前结束,则finalize()将不会执行。