Bom dia,
Estou com uma dúvida sobre Classes! Caso eu queira fazer um código para converter medidas,
EX.:
Milimetro em Metro
Metro em Milimetro
Metro em KM etc…
Terei que criar uma Classe MilimetroEmMetro e depois criar Classes filhas?
Bom dia,
Estou com uma dúvida sobre Classes! Caso eu queira fazer um código para converter medidas,
EX.:
Milimetro em Metro
Metro em Milimetro
Metro em KM etc…
Terei que criar uma Classe MilimetroEmMetro e depois criar Classes filhas?
Vamos lá, resumidamente, a ideia de uma classe é representar um conjunto de elementos de mesma natureza, que são capazes de fazer coisas semelhantes (ou as mesmas coisas).
Pense na classe Caneta, toda caneta é igual? Toda caneta faz a mesma coisa? Toda caneta é capaz de escrever em toda superfície?
Então, meu entendimento é que você deve criar uma classe Conversor e cada método fará a conversão de uma coisa em outra.
Veja, existem abordagens e padrões que, sim, se encaixariam no que você imaginou.
Aliás, o código não ficaria tão maior, você teria, sim, classes extremamente especialistas. A questão é, por que ter uma classe
public class ConversorDeMetrosEmMilimetros {
public static double metrosParaMilimetros(double metros) {
return metros * 1000;
}
}
Se você pode ter uma classe onde reúne todos os conversores?
Agora, pense, você pode querer separar, conversão de medidas métricas de medidas de volumetria, de medidas de capacitância. Aí é contigo.
Certo, Uma outra coisa que eu me perco as vezes, neste caso eu teria que ter um atributo metros?
Não necessariamente.
Veja, você pode ter, apenas, os métodos mesmo.
public class Conversor {
public double metrosParaCentimetros(double metros) {
return metros * 100;
}
public double litrosParaMl(double litros) {
return litros * 1000;
}
}
Entendeu?
Uma classe nem sempre terá atributos, nem sempre terá métodos, nem sempre terá nome…
Cara, você é fera! Agora entendi, eu pensava que sempre teria que ter atributos em uma classe.
Há algum tempo eu criei uma classe com funcionalidade parecida.
A unica diferença é que a minha classe converte temperaturas.
Mas a ideia é a mesma. 
Fonte:
Exemplo de uso:
Unit.Celsius celsius = Unit.celsius(25);
Unit.Farenheit farenheit = celsius.toFarenheit();
Unit.Kelvin kelvin = celsius.toKelvin();
System.out.printf("%s C = %s F%n", celsius, farenheit);
System.out.printf("%s C = %s K%n", celsius, kelvin);
farenheit = Unit.farenheit(77);
celsius = farenheit.toCelsius();
kelvin = farenheit.toKelvin();
System.out.printf("%s F = %s C%n", farenheit, celsius);
System.out.printf("%s F = %s K%n", farenheit, kelvin);
kelvin = Unit.kelvin(298.15);
farenheit = kelvin.toFarenheit();
celsius = kelvin.toCelsius();
System.out.printf("%s K = %s F%n", kelvin, farenheit);
System.out.printf("%s K = %s C%n", kelvin, celsius);