Java objektorientering - behöver hjälp

Permalänk
Medlem

Java objektorientering - behöver hjälp

Hejsan, pluggat hela dagen men har fortfarande en sak att bli klar med tills imorgon annars får jag smisk av min lärare.

Problemet är att när man pluggat i cirka 10 timmar sträck så är man dryg i skallen och ingenting vill fungera så det ska så jag undrar ifall det finns någon som kan koppla ihop följande så att det blir som en Main och två klasser, en som räknar Fahren till cel och en som räknar Cel till Fahren med simpel uträkning multiplicerat och dividerat med två.

Main
public class Kmain{
public static void main(String []argv){
double area = 0;

System.out.println("Mata in 1 for Fahrenheit");
System.out.println("Mata in 2 for Celsius");
System.out.print(" : ");
int x = Keyboard.readInt();

if (x == 1){
System.out.print("Fahrenheit :");
double celsius =Keyboard.readDouble();
H.fahrenheitt(fahrenheit,hojd);
}

if (x == 2){
System.out.println(Celsius );
System.out.print("fahrenheit :");
double radien =Keyboard.readDouble();
area =H.cirkel(radien);

}
}
}

Class 1
public class H{

public static void fahrenheitt(double fahrenheit){
double area = celsius*2;
}
}

Class 2

public class H{

public static double cirkel(double radien){

double cel = Celsius * 2;
return cel;
}
}

Använde mig utav tre stycken tidigare program och har försökt skapa program med main, samt två klasser utav det, (tre olika text filer).

Permalänk

Du har blandat ihop en massa saker? :S

Så här skulle jag gjort det... (NOTERA! Skickar du in detta till din lärare lär du garanterat få IG, det är stor skillnad på denna koden och din kod, han märker det.)

Formelkälla: Fahrenheit and Celsius Conversion Formulas

public interface IConverter { double Convert(double input); } public class FahrenheitToCelsiusConverter implements IConverter { public double Convert(double input) { return (input - 32) * 5 / 9; } } public class CelsiusToFahrenheitConverter implements IConverter { public double Convert(double input) { return input * (9 / 5) + 32; } } public class Program { public static void main(String[] arguments) { System.out.println("Press 1 for Fahrenheit to Celsius."); System.out.println("Press 2 for Celsius to Fahrenheit."); int choice = Keyboard.readInt(); switch(choice) { case 1: double input = Keyboard.readDouble(); double celsius = new FahrenheitToCelsiusConverter().Convert(input); System.out.println(input + " degrees Fahrenheit is " + celsius " degrees Celsius."); break; case 2: double input = Keyboard.readDouble(); double fahrenheit = new CelsiusToFahrenheitConverter().Convert(input); System.out.println(input + " degrees Celsius is " + fahrenheit " degrees Fahrenheit."); break; default: System.out.println("Not a valid option."); break; } } }

Så hade jag nog konstruerat ett liknande program.

Permalänk
Medlem

Jag hade gjort som Hagbarddenstore fast bytt till ett litet C i metodnamnet convert och gjort den statisk.

Inläsning hade jag gjort med System.in tillsammans med java.util.Scanner

Visa signatur

I'm Winston Wolfe. I solve problems.

Permalänk
Medlem

Editerat lite nu

Main
public class Kmain{
public static void main(String []args){
double area = 0;

System.out.println("Type 1 for Fahrenheit");
System.out.println("Type 2 for Celsius");
System.out.print(" : ");
int x = Keyboard.readInt();

if (x == 1){
System.out.println(Fahrenheit );
System.out.print("Fahrenheit :");
double celsius =Keyboard.readDouble();
Fahren.fahrenheitt(fahrenheit,hojd);
}

if (x == 2){
System.out.println(Celsius );
System.out.print("Celsius :");
double fahren =Keyboard.readDouble();
fahren.cirkel(radien);

}
}
}

Class 1
public class Fahren{

public static void fahrenheitt(double fahrenheit){
double fahren = celsius*2;
return fahren;
}
}

Class 2

public class Celsius{

public static double cirkel(double radien){

double cel = Celsius * 2;
return cel;
}
}

Permalänk
Skrivet av matti4s:

Jag hade gjort som Hagbarddenstore fast bytt till ett litet C i metodnamnet convert och gjort den statisk.

Inläsning hade jag gjort med System.in tillsammans med java.util.Scanner

.NET kodare... ^^

Hur ska du göra en metod statisk och fortfarande ha det objektorienterat? :S Var inte det kravet här?

(Annars är en statisk klass med statiska metoder ypperligt för just detta scenariot.)

Permalänk
Medlem

Anledningen till att göra metoderna statiska gissar jag är för att de är gamla hederliga procedurella funktioner. Finns ingen objektorientering i den där koden.

Ett bättre exempel på objektorientering vore att implementera en klass Temperature som har metoder för att hämta ut temperaturen i olika temperaturskalor, göra jämförelser mellan olika Temperature-instanser osv.

Permalänk
Medlem

Kravet var:

1 main program
2 klass program

Räkna:
Fahren - > Celsius
Celsius -> Fahren

De skulle returnera värdena.

Permalänk
Medlem

Suck roger, WTF? är detta helt seriöst eran slutuppgift i programmering B...

Permalänk
Medlem

Tja, det är väl allmänt känt att programmeringskurser på gymnasiet brukar vara ganska värdelösa. Läraren är ofta brutalt underkvalificerad, men det finns ju liksom ingen annan på skolan som kan mäta hans färdigheter.