System.out.print() ist der Java-Befehl. print() dürfte entweder was eigen geschriebenes sein (das du zbs von der ConsoleApplication erbst), oder du hast schon import System.out.*; weiter oben im Code und es verweist da auf eben System.out.print()
println() ist print() mit Zeilenumbruch am Ende.
Ah vielen Dank
Ich hab das jetzt auch mit der Array Länge gecheckt und das gibt jetzt keine Errors mehr zurück Allerdings bekomme ich, wenn ich das Ganze ausführe immer den Text den ich zurückgebe, wenn die Arraylänge nicht 4 ist, obwohl ich das eigentlich richtig gemacht habe Oder kommt der solange bis man mal eine tatsächliche Eingabe mit Werten macht? (übrigens wie genau mache ich das eigentlich )
Und sorry für die ganzen wahrscheinlich sehr trivialen Fragen, aber unser Prof meint halt es wäre sinnvoller uns zu erzählen, wie Compiler und Interpreter in Java funktionieren anstelle uns überhaupt erstmal Java beizubringen(weil das die meisten wohl eh schon können)
Du bekommst die Nachricht, weil du keine Werte eingibst, args hat dann ja nicht die Länge 4.
In der Konsole schreibst du die einfach dahinter und bei Eclipse gehst du auf Run Configurations und da kannst du dann Argumente übergeben mit denen das Programm beim nächsten Start startet.
Edit:Wenn das ne Haushaufgabe ist, ist übrings die Frage ob du das überhaupt machen sollst.
Meine Liste:
- K
- T
- V
Die Länge muss 5 sein. Das erste Element ist stets der Programmname.
Diese Woche geht es darum, einen Kühlschrank zu implementieren und ich habe jetzt folgende Klasse mit dem Konstruktor für den Kühlschrank sowie (u.a) einer Methode um das Innere Volumen zu bekommen
Achtung Spoiler:
In einem anderen Package befinden sich dann die Klassen für die Innenausstattung, wovon es aber drei verschieden Typen gibt, die von dieser ersten Klasse erben:
Achtung Spoiler:
Jetzt mein Problem, der Preis der Innenausstattung der verschiedenen Typen hängt natürlich von dem inneren Volumen ab, allerdings kann ich nicht einfach getInnerVolume() aufrufen, bzw eine Instanz von Freezer erstellen, da ich dann ja konkrete Werte eingeben würde, was aber ja unsinnig wäre, da es ja allgemein funktionieren soll. Also wie genau löse ich das dann? Kann ich irgendwie die Methode aufrufen ohne eine Instanz zu erstellen oder diese Instanz irgendwie 'allgemein' erstellen? (mit einer Main Methode die dann args an den Konstruktor übergibt scheint das auch nicht zu funktionieren, da args außerhalb von der Klasse nicht aufgerufen werden kann. Allerdings kann ich scheinbar auch keinen Freezer in der FreezerClass erstellen und dann in einer anderen darauf zugreifen
PHP-Code:
package freezer.interiors;
public class Standard extends Interior{
public Standard(String ArtNr){
ArticleNumber = ArtNr;
Prize = 0.8 * ???.getInnerVolume();
}
}
Das args Array sollte imo idealerweise in der main() Methode aufgeteilt werden und dann mit den Werten der Freezer erstellt werden. Im Constructor kannst du dann auch die getInnerVolume (Wichtig: Die Bezeichnung "getXY" ist eigentlich reserviert für Funktionen die Instanzvariablen zurückliefern, normalerweise würde da einfach ein "return this.Innervolume" drin stehen. Bezeichne es lieber als "calcInnerVolume" z.b.) Funktion aufrufen um das Volumen zu kalkulieren.
Fürs Interior kannst du dann das Innervolume einfach weiterverwenden und damit eine Instanz des Interiors im Konstruktor des Freezers erstellen. Der constructor würde dann so aussehen:
Code:public Freezer(double hoehe, double tiefe, doube breite, double aussenwanddicke) { thisHoehe = hoehe; thisBreite = breite; thisTiefe = tiefe; thisAussenwanddicke = aussenwanddicke; InnenHoehe = thisHoehe - 2 * thisAussenwanddicke; InnenBreite = thisBreite - 2 * thisAussenwanddicke; InnenTiefe = thisTiefe - 2 * thisAussenwanddicke; calcInnverVolume(); interior = new Interior(ArtNr, InnerVolume); }
|學而不思則罔,思而不學則殆。 ~ 孔子|
| Lernen ohne zu denken ist sinnlos, denken ohne zu lernen gefährlich. ~ Kong Zi |
| During times of universal deceit, telling the truth becomes a revolutionary act ~ George Orwell |
SdM Dez16 - XCOM2 Make Humanity Great again
Was ist denn vorgegeben?
Edit: Bzw. was sollt ihr konkret implementieren?
Geändert von alpha civ (12. Januar 2017 um 13:16 Uhr)
Wenn du Funktionen ohne Instanz so aufrufen willst kannst "static" verwenden, static ist meist aber nicht so hübsch. Besser ist du arbeitest in diesem Fall mit Vererbung, also der spezielle Kühlschrank erbt von einem allgemeineren Kühlschrank, welche die Methode "getInnerVolume()" implementiert. der allgemeine Kühlschrank kann man auch "abstract" machen.
Wer Rechtschreibfehler findet darf diese behalten :)
Original geschrieben von robertinho:
"Asterix und Flati stehen für solide Kompetenz und Verlässlichkeit."
Also erstmal Danke SLaan für die Antwort
Allerdings hab ich die Aufgabe wohl ein wenig falsch verstanden Denn wie es scheint, soll man alle möglichen Innenausstattungen in einem Array zurückgeben, diese Methode erhält dann einen Freezer.
Das sieht dann wie folgt aus:
Achtung Spoiler:
Allerdings gibt das jetzt einen Error aus, zum einen einen TypeMismatch bei der Zeile, in der ich ArcticiSpecial und Standard in ein Array schreibe (war das aber nicht aufwärtskompatibel? Also jeder ArcticSpecial/StandardInt ist ja auch automatisch ein Interior?) und zum Anderen sagt mir Eclipse dass die Konstruktoren für ArcticSpecial und StandardInt nicht existieren
PHP-Code:
package freezer.interiors;
public class ArcticSpecial extends Interior{
public ArcticSpecial(double innV, double innSurA){
Prize = innSurA * 0.2 + innV * 5.0;
this.ArticleNumber = "A";
}
}
Was ja eigentlich korrekt definiert ist Insbesondere sollte man in der Aufgabe davor dasselbe nur mit der Tür machen, allerdings gab es da keinen Error - der einzige Unterschied war, dass die Array Methode keinen Freezer übergeben bekam, da man diese Informationen nicht gebraucht hat.PHP-Code:
package freezer.interiors;
public class StandardInt extends Interior{
public StandardInt (double innV, double innSurA){
Prize = 0.8 * innV;
this.ArticleNumber = "S";
}
}
@Flati: Das könnte ich natürlich machen, darf ich aber nicht weil es halt so in der Aufgabe steht
Edit: OH MEIN GOTT Es lag nur daran, das wenn man in Eclipse auf Save geht nur die momentane Klasse gespeichert wird Ein Fall für den SPF
Hehe, ich glaub strg+shift+s speichert alles in Eclipse.
|學而不思則罔,思而不學則殆。 ~ 孔子|
| Lernen ohne zu denken ist sinnlos, denken ohne zu lernen gefährlich. ~ Kong Zi |
| During times of universal deceit, telling the truth becomes a revolutionary act ~ George Orwell |
SdM Dez16 - XCOM2 Make Humanity Great again
So ich bin jetzt so gut wie fertig, es gibt nur noch ein, zwei Sachen die ich noch fixen muss und noch diese letzte Aufgabe, die ich aber nicht verstehe
Ich habe jetzt eine LinkedList<String> erstellt, die alle Artikelnummern als String beinhaltet, jetzt soll ich das ganze aufsteigend sortieren, allerdings verstehe ich absolut nicht, was ich tun soll so rein von der Aufgabenstellung her
Insbesondere der untere Abschnitt verwirrt mich, da die Artikelnummern ja schon als String gegeben sind, warum also sollte ich die nochmal konvertieren? (kann natürlich auch sein, dass das bis dato noch gar nicht verlang war). Und dann wie genau funktioniert das dann mit diesem Comparator? Also es vergleicht zwei Objekte, aber warum gibt es eine Int zurück? Was für einen Sinn hätte das bei Strings?
Wenn du bei Methoden unsicher sind wie sie funktionieren kannst du immer nachschauen was sie machen . Hier z.b. die Methode compareTo von Strings und was sie tut:
(ka warum der Link beim normalen submit verschwindet)Code:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#compareTo(java.lang.String)
Die Aufgabe find ich aber etwas seltsam, bzw Umsetzung... aber euer Prof wird sich schon was dabei gedacht haben. Da ich noch nie die Comperators verwendet habe kann ich dir hier nicht wirklich helfen
|學而不思則罔,思而不學則殆。 ~ 孔子|
| Lernen ohne zu denken ist sinnlos, denken ohne zu lernen gefährlich. ~ Kong Zi |
| During times of universal deceit, telling the truth becomes a revolutionary act ~ George Orwell |
SdM Dez16 - XCOM2 Make Humanity Great again
@compareTo
0 wenn beide Strings gleich und eine Zahl ungleich 0, wenn größer.
Edit: zu langsam
StorysZitat von Isaac Newton; in einem Brief an Robert Hooke
Civ 4: Weg in den Olymp
Civ 4 PBEM 474 Das Steigen und Fallen der Kurse