Java 简明教程

Java - Static Binding

绑定是一种在方法调用和方法实际实现之间创建链接的机制。根据 polymorphism concept in Javaobject 可以有许多不同的形式。对象形式可以在编译时和运行时进行解析。

Java Static Binding

Static binding 指在编译时在方法调用和方法实现之间解析链接的过程。Static binding 也称为 compile-time bindingearly binding

Characteristics of Java Static Binding

  1. Linking −在编译时解析方法调用和方法实现之间的链接。

  2. Resolve mechanism −静态绑定使用类的类型和字段来解析绑定。

  3. Example - Method overloading 是静态绑定的示例。

  4. Type of Methods - 私有、final 和 static methodsvariables 使用静态绑定。

Example of Java Static Binding

在此示例中,我们创建了一个 Calculator 类,其中有两个以相同名称命名的静态方法,但参数不同,分别用于分别添加两个和三个 int 值。在 main() 方法中,我们调用这些方法并打印结果。基于传递的参数数量,编译器使用静态绑定来确定要调用的方法,并根据此信息相应地打印结果。

package com.tutorialspoint;

class Calculator{
   public static int add(int a, int b){
      return a + b;
   }
   public static int add(int a, int b, int c){
      return a + b + c;
   }
}

public class Tester {
   public static void main(String args[]){
      System.out.println(Calculator.add(20, 40));
      System.out.println(Calculator.add(40, 50, 60));
   }
}
60
150

Java Static Binding: More Examples

Example 1

在此示例中,我们创建了一个 Calculator 类,其中有两个以相同名称命名的非静态方法,但参数不同,分别用于分别添加两个和三个 int 值。在 main() 方法中,我们使用 Calculator 类的对象调用这些方法并打印结果。基于传递的参数数量,编译器使用静态绑定来确定要调用的方法,并根据此信息相应地打印结果。

package com.tutorialspoint;

class Calculator{
   public int add(int a, int b){
      return a + b;
   }
   public int add(int a, int b, int c){
      return a + b + c;
   }
}

public class Tester {
   public static void main(String args[]){
      Calculator calculator = new Calculator();
      System.out.println(calculator.add(20, 40));
      System.out.println(calculator.add(40, 50, 60));
   }
}
60
150

Example 2

在此示例中,我们创建了一个 Calculator 类,其中有两个以相同名称命名的非静态方法,但参数类型不同,分别用于分别添加两个 int 值和两个 double 值。在 main() 方法中,我们使用 Calculator 类的对象调用这些方法并打印结果。基于传递的参数类型,编译器使用静态绑定来确定要调用的方法,并根据此信息相应地打印结果。

package com.tutorialspoint;

class Calculator{
   public int add(int a, int b){
      return a + b;
   }
   public double add(double a, double b){
      return a + b;
   }
}

public class Tester {
   public static void main(String args[]){
      Calculator calculator = new Calculator();
      System.out.println(calculator.add(20, 40));
      System.out.println(calculator.add(20.0, 40.0));
   }
}
60
60.0