JavaRush /Java Blog /Random-IT /Pausa caffè #139. Sovraccarico e override in Java. 5 meto...

Pausa caffè #139. Sovraccarico e override in Java. 5 metodi Java che non conoscevi

Pubblicato nel gruppo Random-IT

Sovraccarico e override in Java

Fonte: Medium In questo articolo imparerai i metodi Overriding e Overloading nel linguaggio Java. A causa del fatto che entrambi questi termini vengono spesso confusi tra loro, vale la pena comprendere chiaramente lo scopo di ciascun metodo e le relative opzioni di applicazione. Pausa caffè #139.  Sovraccarico e override in Java.  5 metodi Java che non conoscevi - 1

Sovraccarico

L'utilizzo di più metodi con lo stesso nome ma con parametri diversi nella stessa classe o metodo tra superclasse e sottoclasse in Java viene chiamato Overloading. Per evitare ciò, viene utilizzato un unico metodo invece di molti che eseguono azioni simili. Spieghiamo con un esempio:
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);
    }
}
In questo codice, il metodo operativo è sovraccaricato. I metodi con gli stessi nomi accettano parametri di tipo diverso. La scelta della modalità è determinata separatamente per i parametri int e double . Quando eseguiamo il programma, operazione.mod (12,4) esegue void.mod (int a, int b) e operazione.mod (12.4,4.2) esegue void.mod (double a, double b) .

Preponderante

In Java possiamo creare una superclasse e sottoclassi che ereditano da quella classe. Queste sottoclassi possono sovrascrivere e sostituire i metodi della classe genitore che ereditano. Questo viene fatto utilizzando il metodo Overriding. Ciò può essere meglio compreso con un esempio:
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");
    }
}
Questo esempio di codice crea una superclasse denominata Animal e sottoclassi denominate Cat e Bee che ereditano da tale superclasse. Il metodo sound nella superclasse viene sovrascritto. Nota: la separazione dei metodi sovraccaricati avviene in fase di compilazione. La separazione dei metodi sottoposti a override avviene in fase di esecuzione.

5 metodi Java che non conoscevi

Fonte: Javarevisited L'ecosistema di sviluppo Java dispone di molti strumenti che i programmatori possono importare e utilizzare nei loro programmi. Questi includono classi e metodi integrati. Semplificano notevolmente il lavoro del programmatore e consentono loro di comprendere e scrivere meglio il codice. Ogni sviluppatore dovrebbe conoscerli. Ecco 5 metodi Java piuttosto rari, ma che possono essere molto utili nel tuo lavoro.

1. decrementoEsatto

decrementExact() è una funzione Java di base della classe Math che decrementa/sottrae un dato argomento (numero) di uno e restituisce il risultato. Questa funzione è l'opposto della funzione incrementaExact() . Ad esempio, se l'argomento fornito è 11, il risultato è 10. Se il decremento di un argomento provoca l'overflow del tipo di dati, viene generata un'eccezione. Pertanto è importante fare attenzione quando si utilizza questa funzione, soprattutto per i numeri grandi. In genere, per questa funzione vengono utilizzati numeri interi. Sintassi:
Math.decrementExact(number);
Esempio:
System.out.println(Math.decrementExact(11));
// Output: 10

2.getAsDouble

getAsDouble() è un metodo appartenente alla classe OptionalDouble . Un oggetto OptionalDouble è un oggetto che può potenzialmente contenere un numero doppio. I metodi della classe possono essere utilizzati per operare su un valore double presente in un oggetto o per indicare che il valore double non è affatto contenuto. getAsDouble() è uno di questi metodi e restituisce il valore double se presente. In caso contrario, viene lanciata una NoSuchElementException . Sintassi:
OptionalDoubleObject.getAsDouble();
Esempio:
OptionalDouble num = OptionalDouble.of(15.0);
System.out.println(num.getAsDouble());
// Output: 15.0

3. absEsatto

Il metodo absExact() è simile alla funzione abs() nella classe Math . Restituisce il valore assoluto di un numero, ovvero il valore positivo del numero indipendentemente dal suo segno. L'unica differenza è che lo fa solo se è rappresentato esattamente come il suo tipo di dati ( int o long ). Se il risultato del valore restituito supera il tipo di dati originale, viene lanciata un'ArithmeticException . Sintassi:
Math.absExact(number);
Esempio:
System.out.println(Math.absExact(-11));
// Output: 11

4.endsWith

finisceCon() è un metodo di stringa integrato che restituisce un valore booleano a seconda che la stringa data termini con un determinato suffisso (parola/stringa finale) nei parametri. Questo metodo è l'opposto del metodo opensWith() , con cui probabilmente molti sviluppatori hanno familiarità. Sintassi:
String.endsWith(String suffix);
Esempio:
String phrase = "I like bananas";
System.out.println(phrase.endsWith("bananas")); // true
System.out.println(phrase.endsWith("Tandrew")); // false
/* Output:
true
false
*/

5. divideUnisgned

Il metodo divideUnsigned() è un metodo della classe Integer che consente di dividere due numeri e restituire il risultato della divisione. Gli interi senza segno, rispetto ai normali interi con segno, possono rappresentare solo numeri positivi. Sia gli interi senza segno che quelli con segno hanno lo stesso numero di numeri nel loro intervallo (la dimensione dell'intervallo è 65.536 numeri). Tuttavia, poiché gli interi senza segno non possono essere negativi, il loro valore massimo nell'intervallo positivo è molto superiore al valore massimo di un intero con segno regolare. Per semplificare, possiamo invece guardare l'esempio dei byte con segno e senza segno. I byte hanno un intervallo di 256 numeri. Un byte normale può avere un valore compreso tra -128 e 127. Tuttavia, un byte senza segno può avere un valore compreso tra 0 e 255. Per il resto, la funzione funziona esattamente come la divisione normale. Sintassi:
Integer.divideUnsigned(int dividend, int divisor);
Esempio:
int dividend = 10;
int divisor = 5;
int quotient = Integer.divideUnsigned(dividend, divisor);
System.out.println(quotient);
// Output: 2

Conclusione

Ecco un riepilogo delle funzioni e dei metodi discussi in questo articolo:
  • decrementExact : diminuisce/sottrae un determinato numero di 1

  • getAsDouble - parte della funzione OptionalDouble , restituisce un numero con un valore doppio o ne indica l'assenza

  • absExact : restituisce il valore assoluto di un numero se può essere rappresentato come il tipo di dati originale

  • finisceCon() - restituisce un valore booleano a seconda che il suffisso specificato esista nella stringa data

  • divideUnsigned() : esegue la divisione normale, restituisce il risultato della divisione di un numero

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