JavaRush /Blogue Java /Random-PT /Pausa para café #139. Sobrecarga e substituição em Java. ...

Pausa para café #139. Sobrecarga e substituição em Java. 5 métodos Java que você não conhecia

Publicado no grupo Random-PT

Sobrecarga e substituição em Java

Fonte: Medium Neste artigo, você aprenderá sobre os métodos Overriding e Overloading na linguagem Java. Pelo fato de ambos os termos serem frequentemente confundidos, vale a pena entender claramente a finalidade de cada método e suas opções de aplicação. Pausa para café #139.  Sobrecarga e substituição em Java.  5 métodos Java que você não conhecia - 1

Sobrecarga

Usar mais de um método com o mesmo nome, mas com parâmetros diferentes na mesma classe ou método entre superclasse e subclasse em Java é chamado de Sobrecarga. Para evitar isso, um único método é usado em vez de muitos que realizam ações semelhantes. Vamos explicar com um exemplo:
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);
    }
}
Neste código, o método de operação está sobrecarregado. Métodos com os mesmos nomes aceitam parâmetros de tipos diferentes. A escolha do modo é determinada separadamente para os parâmetros int e double . Quando executamos o programa, Operation.mod (12,4) executa void.mod (int a, int b) e Operation.mod (12.4,4.2) executa void.mod (double a, double b) .

Substituindo

Em Java, podemos criar uma superclasse e subclasses que herdam dessa classe. Essas subclasses podem substituir os métodos da classe pai que herdam. Isso é feito usando o método Overriding. Isso pode ser melhor compreendido com um exemplo:
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");
    }
}
Este exemplo de código cria uma superclasse chamada Animal e subclasses chamadas Cat e Bee que herdam dessa superclasse. O método sound na superclasse é substituído. Nota: A separação dos métodos sobrecarregados ocorre na fase de compilação. A separação dos métodos substituídos ocorre em tempo de execução.

5 métodos Java que você não conhecia

Fonte: Javarevisited O ecossistema de desenvolvimento Java possui muitas ferramentas disponíveis que os programadores podem importar e usar em seus programas. Isso inclui classes e métodos integrados. Eles simplificam significativamente o trabalho do programador e permitem que ele compreenda e escreva melhor o código. Todo desenvolvedor deveria saber sobre eles. Aqui estão 5 métodos Java que são bastante raros, mas podem ser muito úteis no seu trabalho.

1. decrementoExato

decrementExact() é uma função Java básica da classe Math que decrementa/subtrai um determinado argumento (número) em um e retorna o resultado. Esta função é o oposto da função incrementExact() . Por exemplo, se o argumento fornecido for 11, o resultado será 10. Se a diminuição de um argumento causar um estouro de seu tipo de dados, uma exceção será lançada. Portanto, é importante ter cuidado ao utilizar esta função, principalmente para números grandes. Normalmente, números inteiros são usados ​​para esta função. Sintaxe:
Math.decrementExact(number);
Exemplo:
System.out.println(Math.decrementExact(11));
// Output: 10

2.getAsDouble

getAsDouble() é um método pertencente à classe OpcionalDouble . Um objeto OpcionalDouble é aquele que pode potencialmente conter um número duplo. Os métodos da classe podem ser usados ​​para operar em um valor duplo presente em um objeto ou para indicar que o valor duplo não está contido. getAsDouble() é um desses métodos e retorna o valor duplo, se presente. Caso contrário, uma NoSuchElementException será lançada . Sintaxe:
OptionalDoubleObject.getAsDouble();
Exemplo:
OptionalDouble num = OptionalDouble.of(15.0);
System.out.println(num.getAsDouble());
// Output: 15.0

3. absExato

O método absExact() é semelhante à função abs() da classe Math . Retorna o valor absoluto de um número, que é o valor positivo do número, independentemente do seu sinal. A única diferença é que ele só faz isso se for representado exatamente como seu tipo de dados ( int ou long ). Se o resultado do valor de retorno exceder o tipo de dados original, uma ArithmeticException será lançada . Sintaxe:
Math.absExact(number);
Exemplo:
System.out.println(Math.absExact(-11));
// Output: 11

4. termina com

endsWith() é um método de string integrado que retorna um valor booleano dependendo se a string fornecida termina com um determinado sufixo (palavra final/string) nos parâmetros. Este método é o oposto do métodostartWith() , com o qual muitos desenvolvedores provavelmente estão familiarizados. Sintaxe:
String.endsWith(String suffix);
Exemplo:
String phrase = "I like bananas";
System.out.println(phrase.endsWith("bananas")); // true
System.out.println(phrase.endsWith("Tandrew")); // false
/* Output:
true
false
*/

5. dividirUnissigned

O método divideUnsigned() é um método da classe Integer que permite dividir dois números e retornar o resultado da divisão. Inteiros não assinados, comparados aos inteiros regulares com sinal, só podem representar números positivos. Tanto os inteiros sem sinal quanto os inteiros com sinal têm o mesmo número de números em seu intervalo (o tamanho do intervalo é 65.536 números). No entanto, como inteiros sem sinal não podem ser negativos, seu valor máximo no intervalo positivo é muito maior que o valor máximo de um inteiro com sinal regular. Para simplificar isso, podemos ver o exemplo de bytes assinados e não assinados. Os bytes têm um intervalo de 256 números. Um byte regular pode ter um valor de -128 a 127. No entanto, um byte não assinado pode ter um valor de 0 a 255. Caso contrário, a função funciona exatamente da mesma forma que a divisão regular. Sintaxe:
Integer.divideUnsigned(int dividend, int divisor);
Exemplo:
int dividend = 10;
int divisor = 5;
int quotient = Integer.divideUnsigned(dividend, divisor);
System.out.println(quotient);
// Output: 2

Conclusão

Aqui está um resumo das funções e métodos discutidos neste artigo:
  • decrementExact - diminui/subtrai um determinado número em 1

  • getAsDouble - parte da função OpcionalDouble , retorna um número com valor duplo ou indica sua ausência

  • absExact – retorna o valor absoluto de um número se ele puder ser representado como o tipo de dados original

  • endsWith() - retorna um valor booleano dependendo se o sufixo especificado existe na string fornecida

  • divideUnsigned() - realiza divisão normal, retorna o resultado da divisão de um número

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION