Piszę sobie aktualnie konwerter jednostek.
Fragment:
package konwerterjednostek;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
//Menu startowe
mainMenu main = new mainMenu();
main.Menu();
//Główny kod
switch (input.nextInt())
{
case 1: //Temperatura
Temperature temp = new Temperature();
temp.displayMenu();
temp.Menu();
break;
default:
System.out.println("Niepoprawny wybór.");
}
}
}
Fragment klasy Temperature:
package konwerterjednostek;
import java.util.Scanner;
public class Temperature
{
double inCel, inFahr, inKelv, degCel, degFahr, degKelv;
double absoluteZeroC = -273.15, absoluteZeroF = -151.75, absoluteZeroK = 0;
Scanner input = new Scanner(System.in);
void displayMenu() {
System.out.println("-= KONWERTER TEMPERATUR =-");
System.out.println("");
System.out.println("Wybierz jedną z opcji i naciśnij ENTER:");
System.out.println("[1] Konwersja ze skali Celsjusza.");
System.out.println("[2] Konwersja ze skali Fahrenheita.");
System.out.println("[3] Konwersja ze skali Kelvina.");
System.out.println("");
System.out.print("Wybór: ");
}
void Menu() {
switch (input.nextInt())
{
case 1: //Celsjusz
Temperature cels = new Temperature();
cels.Cels();
break;
default:
System.out.println("Niepoprawny wybór.");
}
}
void Cels() {
System.out.print("Wprowadź temperaturę w *C: ");
inCel = input.nextDouble();
if (inCel >= absoluteZeroC) {
degFahr = ((inCel * 1.8) + 32.00);
degKelv = (inCel + 273.15);
System.out.println("Temperatura w skali Fahrenheita: " + degFahr + " *F");
System.out.println("Temperatura w skali Kelvina: " + degKelv + " K");
}
else {
System.out.println("Błąd krytyczny. Wartość nie może być mniejsza niż zero absolutne!");
}
}
}
I teraz pytanie zasadnicze: czy dobrze robię, że w klasie Temperature w metodzie Menu() wydzielam ze switch'a metodę Cels()? Czy nie ma to znaczenia i mógłbym wszystko umieścić w danym case'ie?