Rumah  >  Artikel  >  Java  >  Bagaimanakah mekanisme lebihan beban dalam fungsi Java dilaksanakan untuk parameter yang berbeza?

Bagaimanakah mekanisme lebihan beban dalam fungsi Java dilaksanakan untuk parameter yang berbeza?

PHPz
PHPzasal
2024-04-26 08:12:01611semak imbas

Mekanisme lebihan beban dalam Java melaksanakan polimorfisme parameter, membenarkan kaedah dengan nama yang sama mengendalikan jenis parameter yang berbeza. Kaedah terlebih muatan dipadankan berdasarkan jenis parameter, dengan keutamaan berikut: jenis padanan tepat, jenis penukaran automatik dan jenis padanan santai. Dalam kes praktikal, kaedah terlebih beban untuk mengira luas segi empat tepat dan bulatan disediakan, menunjukkan cara memanggil kaedah yang sesuai berdasarkan input bentuk yang berbeza.

Java 函数中的重载机制针对不同的参数如何实现?

Mekanisme lebihan beban dalam fungsi Java melaksanakan polimorfisme parametrik

Dalam Java, lebihan muatan membolehkan berbilang kaedah ditakrifkan dalam kelas yang sama dengan nama yang sama tetapi parameter berbeza. Ini menyediakan cara untuk menggunakan nama fungsi yang sama untuk mengendalikan jenis atau bilangan argumen yang berbeza.

Syntax

Sintaks kaedah terlampau beban adalah seperti berikut:

methodName(parameter1_type parameter1_name, parameter2_type parameter2_name, ...)

Contoh berikut menunjukkan dua kaedah calculate terlebih beban:

public class MyClass {
    public int calculate(int num1, int num2) {
        return num1 + num2;
    }

    public double calculate(double num1, double num2) {
        return num1 * num2;
    }
}

Padanan parameter

Apabila kaedah to overloaded dipanggil parameter:

  • Pilih jenis parameter yang sepadan yang betul-betul sepadan.
  • Benarkan parameter ditukar secara tersirat melalui autoboxing atau unboxing.
  • Padanan santai membolehkan menghantar jenis parameter yang lebih luas kepada jenis parameter yang lebih sempit.

Kes praktikal

Berikut ialah kes praktikal yang menunjukkan cara menggunakan kaedah lebihan muatan untuk mengendalikan jenis dan bilangan parameter yang berbeza:

import java.util.Scanner;

public class AreaCalculator {

    public double calculateArea(int length, int width) {
        return length * width;
    }

    public double calculateArea(int radius) {
        return Math.PI * radius * radius;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter shape (rectangle/circle): ");
        String shape = scanner.nextLine();

        if (shape.equals("rectangle")) {
            System.out.print("Enter length: ");
            int length = scanner.nextInt();
            System.out.print("Enter width: ");
            int width = scanner.nextInt();

            AreaCalculator calculator = new AreaCalculator();
            double area = calculator.calculateArea(length, width);
            System.out.println("Area of rectangle: " + area);
        } else if (shape.equals("circle")) {
            System.out.print("Enter radius: ");
            int radius = scanner.nextInt();

            AreaCalculator calculator = new AreaCalculator();
            double area = calculator.calculateArea(radius);
            System.out.println("Area of circle: " + area);
        } else {
            System.out.println("Invalid shape");
        }
    }
}

Atas ialah kandungan terperinci Bagaimanakah mekanisme lebihan beban dalam fungsi Java dilaksanakan untuk parameter yang berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn