Singletons bieten sich mMn nur an, wenn man für andere programmiert.
Singletons bieten sich mMn nur an, wenn man für andere programmiert.
Meine Stories:Zitat von Leonard Bernstein
Civ VI aus der Sicht von Civ IV BTS, englischer Weltraumsieg auf König
Der Erste Kaiser wieder aufgenommen
Java? Joa, Singleton.
Das was du da vorgeschlagen hast, ist quasi ein schlecht implementierte Vertreter davon.
Ansonsten hilft es oft auch, nochmal drüber nachzudenken ob es nicht weniger umständlich geht.
Für mich bisher schönster Vortrag beim CC33C: https://fahrplan.events.ccc.de/congr...ents/7912.html
Läuft gerade noch, aber sollte bald auch auf https://media.ccc.de/c/33c3 zu finden sein.
...also, den hab ich nicht live gesehen, aber mir ganz dringend vorgenommen das anzugucken. Der David Kriesel hat vor zwei Jahren einen großartigen Talk gehalten, wie er in Xerox-Workstations einen fetten Bug erkannt hat.
Mit Naturgesetzen kann man nicht verhandeln. --Harald Lesch
Ein Atomkrieg würde die Menschheit auslöschen. Hätte aber auch Nachteile.
Wir haben vor der Winterpause in der Uni mit Java angefangen und jetzt sitze ich - als totaler Anfänger - an der ersten Übung und hab mal eine Frage:
Ich habe folgende Methode:
Ist der einzige Grund hier jetzt warum das char und das math.pow in Klammern sind, weil das mit den Klammern scheinbar automatisch in char umgewandelt wird? Oder hat das irgendeinen anderen Grund?Code:private static char methode1(int c, int d) { return (char) (Math.pow(c, d)); }
Und was genau würde jetzt hier zurückgegeben werden? Die Zahl die da rauskäme oder das Zeichen zur Zahl aus dem Unicode?
Ieehhh, auch wenns klappt sieht das hässlich aus. Bei so kleinen Funktionen geht es zwar, aber der Übersicht wegen bietet es sich normalerweise an im return Statement nur einen Wert zurück zu geben und dort keine Berechnungen/conversions zu machen...
Also lieber
Zum zweiten: Warum überhaupt n char zurückgeben . Aber ja, das returnt dann einen 16bit Unicode Character, was als Zeichen interpretiert wird. Wenn int c = 2 und int d = 6 kommt z.b. das "@" Zeichen zurück. Das Math.pow(c,d) muss auch nicht in Klammern stehen, dass ist komplett ein Aufruf, Vorzugsregeln sind daher hier nicht nötig.Code:private static char methode1(int c, int d) { char result = (char) (Math.pow(c, d)); return result; }
Das (char) konvertiert den Integer der aus dem Math.pow Aufruf zurück kommt in das Char was du am Ende zurück gibst.
|學而不思則罔,思而不學則殆。 ~ 孔子|
| 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
Nebenbei, wenn du selbst Java Code kurz ausprobieren möchtest aber keine IDE oder ähnliches zur Hand hast kannst ja mal hier vorbeischauen: https://www.compilejava.net/
|學而不思則罔,思而不學則殆。 ~ 孔子|
| 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
Einzeilermethoden die nicht grad getter und setter sind machen doch eh nie wirklich Sinn. Warum eine Methode für etwas schreiben das man in eine Zeile schreibt? Sofern das nicht ein super komplexer Objektaufruf ist in die Richtung
ist; und die sollte man sowieso nicht machen...Code:long.ass.object.call.that.noone.likes.set(int a);
Aber gut, da hat am Ende wohl jeder seine Vorlieben .
|學而不思則罔,思而不學則殆。 ~ 孔子|
| 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
Gleich auch schon die nächste Frage:
Ich habe einen Konstruktor und möchte dem als Parameter einen String-Array der Größe 4 geben, was allerdings nicht so wirklich funktioniert
Weder so:
noch so:Code:String[] testarray = new String[4]; public konstruktor1(testarray) { }
Code:public konstruktor11(String[] testarray) { }
Das direkte deklarieren innerhalb der Klammern funktioniert natürlich auch nicht. Letzterer Code spuckt aber wenigstens keinen Syntaxfehler aus, also scheint der ja gar nicht so falsch zu sein. Nur habe ich dann halt nirgends die Länge oder sonst irgendwas deklariert und kann entsprechend nichts zuweisen
Wenn ich nach dem zweiten Code ein 'testarray = new String[] {"a", "b", "c", "d"}' packe, wäre zwar auch das Problem behoben, nur weiße ich dann ja die Werte direkt zu und erlaube ja gar keine Eingabemöglichkeit oder verstehe ich etwas grundlegend nicht
Ich benutze Eclipse, also nicht dass es daran läge, aber man weiß ja nie
Java ist übrigens nach einem Viertel Jahr mit Racket und Scheme/Htdpl wirklich ein wenig
Gut ok, aber wie genau löse ich dann das Problem dass ich habe:
Wenn ich nach Aufruf der Methode die einzelnen Einträge zuweisen will also zb
a = testarray[0];
b= testarray [1];
bekomme ich eine IndexoutofboundException, die ja kommt, wenn man auf ungültige Stellen im Array zugreifen will. Oder ist das der Preis den man zahlen muss dafür, dass die Länge beliebig sein darf ?