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.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
GO TO FULL VERSION