Rumah > Java > javaTutorial > teks badan

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

PHPz
Lepaskan: 2024-04-26 08:12:01
asal
598 orang telah melayarinya

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, ...)
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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");
        }
    }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!