ERLEDIGT
NEIN
NEIN
ANTWORTEN
57
57
ZUGRIFFE
1802
1802
EMPFEHLEN
-
Hallo Leute,
da ich meine Prüfung in JAVA voll in den Sand gesetzt hab, hoffe ich dass ihr mir etwas weiterhelfen könnt. Ich habe mir nochmals die Aufgaben geholt. Vielleicht könnt Ihr mir dabei helfen, damit ich sehen kann, was ich falsch gemacht habe.
Gleich mal zur ersten Aufgabe, gegeben ist folgendes:
Code :1
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
[font=CourierNew][font=Times New Roman][size=3]public class Hausarbeit1 {[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]public static void main(String[] args) {[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]short zahl1 = 1234;[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]short zahl2 = 5678;[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]zahl1++;[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]zahl2++;[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]int ergebnis = (zahl1 + zahl2) << 4;[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]short kurz = (short)ergebnis;[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]System.out.println(zahl1);[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]System.out.println(zahl2);[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]System.out.println(ergebnis);[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]System.out.println(kurz);[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]}[/size][/font][/font] [font=CourierNew][font=Times New Roman][size=3]}[/size][/font][/font] [font=Arial][size=3] [/size][/font]
Nun meine Aufgabe:
Nehmen Sie nun einige Erweiterungen an dieser Klasse vor. Definieren Sie eine Methode toShort(), die ein Argument vom Typ int bekommt, dessen Wert in einen Wert vom Typ short umwandelt und zurückgibt. Definieren Sie ebenso eine Methode toFloat(), die einen Wert vom Typ double in einen Wert vom Typ float umwandelt.
Ersetzen Sie nun den expliziten Cast in der Methode main() durch die Verwendung von toShort(). Dividieren Sie in main() ferner den Wert von Ergebnis durch 9.876 und speichern Sie das Resultat in einer Variable doppelt vom Typ double. Weisen Sie diesen Wert anschließend unter Verwendung von toFloat() einer Variable einfach vom Typ float zu. Ergänzen Sie die Ausgabeanweisungen um die Ausgabe der Werte der beiden neuen Variablen.
Die Methode kann ich doch einfach so einsetzen, oder nicht?
int toShort = short(ergebnis)
-
11.10.05 07:52 #2
- Registriert seit
- Sep 2005
- Ort
- Essen
- Beiträge
- 116
Hi,
also für mich klingt das eher nach sowas in der Art:
Auszug Main:
Code :1
short kurz = to_short(ergebnis);
Und vorher definierst du noch die Methode to_short:
Code :1 2 3
private short to_short (int x){ return short(x); }
Das gleiche mit leichten Abwandlungen eben für to_Float. Naja die Division war denke ich mal nicht das Problem.
Hoffe mal hab das jetzt richtig verstanden
.
Gruß
-
Wäre dass dann mal der Anfang soweit?
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
[font=CourierNew][size=3][font=Times New Roman]public class Hausarbeit1 {[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]public static void main(String[] args) {[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]short zahl1 = 1234;[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]short zahl2 = 5678;[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]zahl1++;[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]zahl2++;[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]int ergebnis = (zahl1 + zahl2) << 4;[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]short kurz = (short)ergebnis;[/font][/size][/font] [font=CourierNew][font=Times New Roman][size=3] [/size][/font][/font] [font=CourierNew][size=3][font=Times New Roman]private short toShort (int x){[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman] return short(x);[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]}[/font][/size][/font] [color=#3f3849][size=3][font=Times New Roman]short kurz = toShort(ergebnis);[/font][/size][/color] [color=#3f3849][font=Times New Roman][size=3] [/size][/font][/color] [color=#3f3849][size=3][font=Times New Roman]private float toFloat (double y) {[/font][/size][/color] [color=#3f3849][size=3][font=Times New Roman] return float(y);[/font][/size][/color] [color=#3f3849][size=3][font=Times New Roman]}[/font][/size][/color] [color=#3f3849][size=3][font=Times New Roman]float kurz = toFloat(ergebnis);[/font][/size][/color] [color=#3f3849][font=Times New Roman][size=3] [/size][/font][/color] [font=CourierNew][size=3][font=Times New Roman]System.out.println(zahl1);[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]System.out.println(zahl2);[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]System.out.println(ergebnis);[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]System.out.println(kurz);[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]}[/font][/size][/font] [font=CourierNew][size=3][font=Times New Roman]}[/font][/size][/font]
-
11.10.05 09:00 #4
- Registriert seit
- Sep 2005
- Ort
- Essen
- Beiträge
- 116
Hi,
naja nicht ganz. Habt ihr Methoden nicht durchgenommen? Zumindest wirkt es auf mich so als wenn es für dich Neuland ist. Es müsste so aussehen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
public class Hausarbeit1 { private short to_Short (int x){ return short(x); } private float to_Float (double y) { return float(y); } public static void main(String[] args) { short zahl1 = 1234; short zahl2 = 5678; zahl1++; zahl2++; int ergebnis = (zahl1 + zahl2) << 4; short kurz = toShort(ergebnis); double doppelt = ergebnis / 9.876; float einfach = toFloat(doppelt); System.out.println(zahl1); System.out.println(zahl2); System.out.println(ergebnis); System.out.println(kurz); System.out.println(doppelt); System.out.println(einfach); } }
Das ist jetzt schon die ganze Aufgabe glaube ich. Wenn du Verständnisfragen hast stell sie einfach. Blind abschreiben würde dich ja nicht wirklich weiterbringen
.
Gruß
-
naja, wir haben die nur kurz angeschnitten. in der prüfung sind 85% durchgefallen. Aber es bringt mir ja nichts, wenn ich es nicht verstehe. Das mit den Methoden hab ich jetzt die letzten 2 Tage durchgemacht. Es geht ja nur darum, dass ich die richtige Lösung mit meiner geschriebenen Aufgabe verlgeichen kann. Damit kann ich dann am besten sehen, wo meine Schwachpunkte liegen. Ich hoffe es zumindest. Ich glaub jetzt ich habs verstanden. So nun werde ich mal die nächste Aufgabe ansehen. Hoffe Ihr helft mir weiter, wenn ich das nicht verstehe.
-
Als nächstes hätte ich eine Frage. Ich soll eine eine Klasse Konto erstellen, die in
einfacher Weise ein Bankkonto beschreibt. Das habe ich auch gemacht mit zwei Klassen:
Hier die Klasse Konto
Hier die Klasse KontoTesterCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
public class Konto { // Instanzvariable private double kontostand; // Konstruktor public Konto(double stand_neu) { kontostand = stand_neu; } // Kontostand abfragen public double getKontostand() { return kontostand; } // Geldbetrag auf das Konto einzahlen public void einzahlen(double betrag) { kontostand = kontostand + betrag; } // Geldbetrag vom Konto abheben public void abheben(double betrag) { kontostand = kontostand - betrag; } }
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
public class KontoTester { public static void main(String[] args) { Konto einKonto; // Konto anlegen einKonto = new Konto(500.00); System.out.println("Erster Kontostand: " + einKonto.getKontostand()); // Vom Konto abheben einKonto.abheben(150.00); System.out.println("Kontostand nach abheben von 150.00: " + einKonto.getKontostand()); // Auf Konto einzahlen einKonto.einzahlen(11.23); System.out.println("Kontostand nach einzahlen von 11.23: " + einKonto.getKontostand()); // Vom Konto abheben einKonto.abheben(400.00); System.out.println("Kontostand nach abheben von 400.00: " + einKonto.getKontostand()); // Auf Konto einzahlen einKonto.einzahlen(222.50); System.out.println("Kontostand nach einzahlen von 222.50: " + einKonto.getKontostand()); // Vom Konto abheben einKonto.abheben(47.62); System.out.println("Kontostand nach abheben von 47.62: " + einKonto.getKontostand()); } }
Jetzt möchte ich folgendes hinzufügen:
- Ein Konto erhält als zusätzliche Eigenschaft eine Kontonummer, die als Wert
vom Typ long gespeichert wird. Die Kontonummer kann nur bei der Erzeugung
eines Konto-Objekts gesetzt werden. Danach soll sie nur noch abgefragt, aber
nicht mehr geändert werden können.
- Die Methode abheben() wird so geändert, dass nur noch Abhebungen möglich
sind, die durch Guthaben gedeckt sind. Die Methode soll einen Wahrheitswert
zurückgeben, der angibt, ob die Abhebung durchgeführt wurde. Wird versucht,
einen Betrag abzuheben, der größer als der Kontostand ist, so soll der
Kontostand unverändert bleiben und der Wert false zurückgegeben werden.
Anderenfalls soll die Abhebung ausgeführt und der Wert true zurückgegeben
werden.
- Die Klasse KontoTester will ich so abändern, das das erzeugte Konto die Kontonummer
12345678 erhalten soll. Am Ende der Methode main() soll die Kontonummer abgefragt
und ausgegeben werden. Bei jeder einzelnen Abhebung soll getestet werden, ob sie
erfolgreich war. Nur, wenn eine Abhebung ausgeführt werden konnte, soll der neue
Kontostand ausgegeben werden, anderenfalls soll jeweils die Meldung „Guthaben
nicht ausreichend.“ ausgegeben werden.
Die Eigenschaft Kontonummer ist ja einfach hinzugefügt. Nur wie kann ich die Kontonummer nur bei der Erzeugung eines Konto-Objekts gesetzt werden und nur noch abfragen, aber nicht mehr ändern?
-
11.10.05 10:21 #7
- Registriert seit
- Sep 2005
- Ort
- Essen
- Beiträge
- 116
Hi,
das du die Nummer nur bei Erzeugung erstellen kannst und dann nur noch Abfragen darfst, erreichst du dadurch das du den Wert nur im Konstruktor animmst um ihn da zu setzen. Über eine Methode schaffst du dann die Möglichkeit auf die Nummer zugreifen zu können, aber nur zum lesen. Eine setzende Methode lässt du einfach weg.
Gruß
-
Also muss ich hier
Code :1 2 3 4
// Konstruktor public Konto(double stand_neu) { kontostand = stand_neu; }
die Kontonummer einsetzen, oder?
Code :1 2 3 4 5
// Konstruktor public Konto(double stand_neu, int kontonummer) { kontostand = stand_neu; kontonummer = kontonummer; }
und die Methode:
richtig?Code :1 2 3
// Kontonummer auslesen public void kontonummer(int kontonummer) { kontonummer = kontonummer; }
-
11.10.05 10:41 #9
- Registriert seit
- Oct 2004
- Ort
- Hessen
- Beiträge
- 310
Aehm, du willst doch die kontonummer auslesen oder?
Sprich sowas hier machen:
public int getKontoNummer() {
return this.kontonummer;
}
this ist nicht zwingend notwendig.
Habs mir nur irgendwie angewöhnt, da wir ja auch OO-orientiert denken
Gruss,
Torsten"There's nothing we have to fear, except Fear itself....."
-
11.10.05 10:41 #10
- Registriert seit
- Sep 2005
- Ort
- Essen
- Beiträge
- 116
du musst zuerst eine entsprechende Variabel deklarieren. Dann den Konstruktor, wie du ja schon korrekt geschrieben hast...
Code :1 2 3 4 5 6
private int kontonr; // Konstruktor public Konto(double stand_neu, int kontonummer) { kontostand = stand_neu; kontonr = kontonummer; }
Und die Methode müsste genau anders rum sein. So wie du sie beschrieben hast würdest du ja die Nummer ändern! Müsste also so aussehen:
Code :1 2 3 4
// Kontonummer auslesen public int getKontonummer() { return kontonr; }
Gruß
[EDIT] Siehe teilweise den schnelleren Vorposter
[/EDIT]
-
ah, ok jetzt kommt es langsam. Dann würde die Klasse Konto so aussehen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
public class Konto { // Instanzvariable private double kontostand; private int kontonr; // Konstruktor public Konto(double stand_neu, int kontonummer) { kontostand = stand_neu; kontonr = kontonummer; } // Kontostand abfragen public double getKontostand() { return kontostand; } // Geldbetrag auf das Konto einzahlen public void einzahlen(double betrag) { kontostand = kontostand + betrag; } // Geldbetrag vom Konto abheben public void abheben(double betrag) { kontostand = kontostand - betrag; } // Kontonummer auslesen public int getKontonummer() { return kontonr; } }
und wie bekomme ich sowas hin?
Die Methode abheben() wird so geändert, dass nur noch Abhebungen möglich
sind, die durch Guthaben gedeckt sind. Die Methode soll einen Wahrheitswert
zurückgeben, der angibt, ob die Abhebung durchgeführt wurde. Wird versucht,
einen Betrag abzuheben, der größer als der Kontostand ist, so soll der
Kontostand unverändert bleiben und der Wert false zurückgegeben werden.
Anderenfalls soll die Abhebung ausgeführt und der Wert true zurückgegeben
werden.
Mit einer If Bedinung?
-
11.10.05 11:03 #12
- Registriert seit
- Sep 2005
- Ort
- Essen
- Beiträge
- 116
Hi,
auch das ist ziemlich simpel. Ich geb diesmal keinen Code vor sondern nur die Theorie
.
Die Funktion muss statt void true oder false zurückgeben in Form eins boolean Wertes. False wenn das Konto nicht gedeckt ist und true wenn die Abhebung eben erfolgreich war.
Was nun zurückgegeben wird ermittelst du über eine If-Abfrage. Damit prüfst du ob der Kontostand über dem abzuhebenden Wert liegt oder eben nicht.
Versuch das mal in Code umzusetzen und poste nochmal
.
Gruß
-
Code :
1 2 3 4
// Geldbetrag vom Konto abheben public boolean abheben(double betrag) { if (kontostand=<0) kontostand = kontostand - betrag; }
so ?
-
11.10.05 11:28 #14
- Registriert seit
- Sep 2005
- Ort
- Essen
- Beiträge
- 116
Hm.. teilweise

Also der Kopf der Methode ist korrekt. Die Abfrage ist nicht wirklich richtig. Der Kontostand muss ja NACH dem Abheben 0 oder höher sein. Momentan testest du ja nur ob er davor 0 oder höher ist.
Ansonsten müsstest du noch ein return true oder false einbauen, je nach Resultat der Abfrage.
gruß
-
#Code :
1 2 3 4
// Geldbetrag vom Konto abheben public boolean abheben(double betrag) { if (kontostand - betrag =<0) {kontostand = kontostand - betrag;return true}return false; }
und so?
Ähnliche Themen
-
Microsoft Exchange 2007 Step by Step
Von denisSCR im Forum Microsoft WindowsAntworten: 0Letzter Beitrag: 24.02.10, 11:25 -
"making of" eines 3d characters - step by step
Von pixel-panik im Forum Cinema 4DAntworten: 1Letzter Beitrag: 07.02.08, 11:15 -
Step-by-Step Tutorial: Achieve Rapid Application Development with Seam+Eclipse+Tomcat
Von Techieexchange im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 13.11.07, 22:43 -
Installation von Cocoon in Eclipse - Step by Step
Von downset04 im Forum JavaAntworten: 0Letzter Beitrag: 13.12.05, 21:09 -
Suche Step-by-step Tut
Von Oxygen im Forum 3D Studio MaxAntworten: 1Letzter Beitrag: 22.07.01, 13:13





Zitieren
Login




