JavaRush /Blog Java /Random-MS /Coffee break #139. Overloading dan Overriding dalam Java....

Coffee break #139. Overloading dan Overriding dalam Java. 5 Kaedah Java yang Anda Tidak Tahu

Diterbitkan dalam kumpulan

Overloading dan Overriding dalam Java

Sumber: Sederhana Dalam artikel ini, anda akan mempelajari tentang kaedah Overriding dan Overloading dalam bahasa Java. Disebabkan fakta bahawa kedua-dua istilah ini sering keliru antara satu sama lain, adalah wajar memahami dengan jelas tujuan setiap kaedah dan pilihan mereka untuk aplikasi. Coffee break #139.  Overloading dan Overriding dalam Java.  5 Kaedah Java yang Anda Tidak Tahu - 1

Berlebihan

Menggunakan lebih daripada satu kaedah dengan nama yang sama tetapi dengan parameter yang berbeza dalam kelas atau kaedah yang sama antara superclass dan subclass dalam Java dipanggil Overloading. Untuk mengelakkan ini, satu kaedah digunakan dan bukannya banyak yang melakukan tindakan yang serupa. Mari kita jelaskan dengan contoh:

public class MethodOverloading {

    public static void main(String[] args){
        MethodOverloading operation = new MethodOverloading();
        operation.mod(12,4);
        operation.mod(12.4,4.2);
    }

    void mod(double a, double b){
        System.out.println(a % b);
    }

    void mod(int a, int b){
        System.out.println(a % b);
    }
}
Dalam kod ini, kaedah operasi terlebih beban. Kaedah dengan nama yang sama menerima parameter jenis yang berbeza. Pilihan mod ditentukan secara berasingan untuk parameter int dan berganda . Apabila kita menjalankan program, operation.mod (12,4) menjalankan void.mod (int a, int b) dan operation.mod (12.4,4.2) menjalankan void.mod (double a, double b) .

Mengatasi

Di Java, kita boleh mencipta superclass dan subclass yang mewarisi daripada kelas tersebut. Subkelas ini boleh mengatasi dan menggantikan kaedah kelas induk yang mereka warisi. Ini dilakukan menggunakan kaedah Overriding. Ini boleh difahami dengan lebih baik dengan contoh:

public class MethodOverriding {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.sound();

        Bee bee = new Bee();
        bee.sound();
    }
}

class Animal {
    void sound(){
        System.out.println("Animal sounds");
    }
}

class Cat extends Animal{
    @Override
    void sound() {
        System.out.println("Cat : meow meow");
    }
}

class Bee extends Animal{
    @Override
    void sound() {
        System.out.println("Bee : buzz buzz");
    }
}
Contoh kod ini mencipta superclass bernama Animal dan subclass bernama Cat dan Bee yang mewarisi daripada superclass tersebut. Kaedah bunyi dalam superclass ditindih. Nota: Pengasingan kaedah terlebih beban berlaku pada peringkat penyusunan. Pengasingan kaedah yang diganti berlaku pada masa jalan.

5 Kaedah Java yang Anda Tidak Tahu

Sumber: Javarevisited Ekosistem pembangunan Java mempunyai banyak alatan yang tersedia yang boleh diimport dan digunakan oleh pengaturcara dalam program mereka. Ini termasuk kelas dan kaedah terbina dalam. Mereka memudahkan kerja pengaturcara dengan ketara dan membolehkan mereka memahami dan menulis kod dengan lebih baik. Setiap pembangun harus tahu tentang mereka. Berikut ialah 5 kaedah Java yang agak jarang berlaku, tetapi boleh menjadi sangat berguna dalam kerja anda.

1. penurunanTepat

decrementExact() ialah fungsi Java asas daripada kelas Matematik yang mengurangkan/menolak argumen (nombor) dengan satu dan mengembalikan hasilnya. Fungsi ini adalah bertentangan dengan incrementExact() fungsi . Contohnya, jika hujah yang diberikan ialah 11, maka hasilnya ialah 10. Jika mengurangkan argumen menyebabkan jenis datanya melimpah, pengecualian akan dilemparkan. Oleh itu, adalah penting untuk berhati-hati apabila menggunakan fungsi ini, terutamanya untuk bilangan yang besar. Biasanya, integer digunakan untuk fungsi ini. Sintaks:

Math.decrementExact(number);
Contoh:

System.out.println(Math.decrementExact(11));
// Output: 10

2.getAsDouble

getAsDouble() ialah kaedah kepunyaan kelas OptionalDouble . Objek OptionalDouble ialah objek yang berpotensi memegang nombor berganda. Kaedah dalam kelas boleh digunakan untuk beroperasi pada nilai berganda yang terdapat dalam objek, atau untuk menunjukkan bahawa nilai berganda itu tidak terkandung sama sekali. getAsDouble() ialah satu kaedah sedemikian dan ia mengembalikan nilai berganda jika ada. Jika tidak, NoSuchElementException dilemparkan . Sintaks:

OptionalDoubleObject.getAsDouble();
Contoh:

OptionalDouble num = OptionalDouble.of(15.0);
System.out.println(num.getAsDouble());
// Output: 15.0

3. absExact

Kaedah absExact() adalah serupa dengan fungsi abs() dalam kelas Matematik . Ia mengembalikan nilai mutlak nombor, iaitu nilai positif nombor tanpa mengira tandanya. Satu-satunya perbezaan ialah ia hanya melakukan ini jika ia betul-betul diwakili sebagai jenis datanya ( int atau long ). Jika hasil nilai pulangan melebihi jenis data asal, ArithmeticException dilemparkan . Sintaks:

Math.absExact(number);
Contoh:

System.out.println(Math.absExact(-11));
// Output: 11

4.berakhirDengan

endsWith() ialah kaedah rentetan terbina dalam yang mengembalikan nilai boolean bergantung pada sama ada rentetan yang diberikan berakhir dengan akhiran tertentu (kata akhir/rentetan) dalam parameter. Kaedah ini adalah bertentangan dengan kaedah startsWith() , yang mungkin diketahui oleh ramai pembangun. Sintaks:

String.endsWith(String suffix);
Contoh:

String phrase = "I like bananas";
System.out.println(phrase.endsWith("bananas")); // true
System.out.println(phrase.endsWith("Tandrew")); // false
/* Output:
true
false
*/

5. divideUnissigned

Kaedah divideUnsigned() ialah kaedah daripada kelas Integer yang membolehkan anda membahagi dua nombor dan mengembalikan hasil pembahagian. Integer tidak bertanda, berbanding integer bertanda biasa, hanya boleh mewakili nombor positif. Kedua-dua integer yang tidak ditandatangani dan integer yang ditandatangani mempunyai bilangan nombor yang sama dalam julatnya (saiz julat ialah 65,536 nombor). Walau bagaimanapun, oleh kerana integer tidak bertanda tidak boleh negatif, nilai maksimumnya dalam julat positif adalah lebih tinggi daripada nilai maksimum untuk integer bertanda biasa. Untuk memudahkan ini, kita boleh melihat contoh bait yang ditandatangani dan tidak ditandatangani. Bait mempunyai julat 256 nombor. Bait biasa boleh mempunyai nilai dari -128 hingga 127. Walau bagaimanapun, bait yang tidak ditandatangani boleh mempunyai nilai dari 0 hingga 255. Jika tidak, fungsi berfungsi sama seperti pembahagian biasa. Sintaks:

Integer.divideUnsigned(int dividend, int divisor);
Contoh:

int dividend = 10;
int divisor = 5;
int quotient = Integer.divideUnsigned(dividend, divisor);
System.out.println(quotient);
// Output: 2

Kesimpulan

Berikut ialah ringkasan fungsi dan kaedah yang dibincangkan dalam artikel ini:
  • decrementExact - mengurangkan/menolak nombor tertentu sebanyak 1

  • getAsDouble - sebahagian daripada fungsi OptionalDouble , mengembalikan nombor dengan nilai berganda atau menunjukkan ketiadaannya

  • absExact - mengembalikan nilai mutlak nombor jika ia boleh diwakili sebagai jenis data asal

  • endsWith() - mengembalikan nilai boolean bergantung pada sama ada akhiran yang ditentukan wujud dalam rentetan yang diberikan

  • divideUnsigned() - melakukan pembahagian biasa, mengembalikan hasil pembahagian nombor

Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION