Seite 101 von 202 ErsteErste ... 5191979899100101102103104105111151201 ... LetzteLetzte
Ergebnis 1.501 bis 1.515 von 3026

Thema: [Programmiererstammtisch] "Zum ächzenden Compiler"

  1. #1501
    Macht Musik Avatar von Peregrin_Tooc
    Registriert seit
    21.05.05
    Ort
    St. Ingbert
    Beiträge
    11.144
    Singletons bieten sich mMn nur an, wenn man für andere programmiert.
    Zitat Zitat von Leonard Bernstein
    This will be our reply to violence:
    to make music more intensely,
    more beautifully,
    more devotedly than ever before.
    Meine Stories:
    Civ VI aus der Sicht von Civ IV BTS, englischer Weltraumsieg auf König
    Der Erste Kaiser wieder aufgenommen

  2. #1502
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von [VK] Beitrag anzeigen
    Höre ständig nur schlechtes über die...

    https://stackoverflow.com/questions/...out-singletons

    Weil Singleton häufig falsch verwendet wird. Aber wenn die Alternative wie in deinem Fall ist, vielen Methoden die gleichen Daten übergeben zu müssen, dann kann ein Singleton sinnvoll sein. Weil die Klasse, die diese Daten enthält, braucht und soll nur einmal instanziert werden.

  3. #1503
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.445
    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.

  4. #1504
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    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.

  5. #1505
    Frühstücksbonze Avatar von Gullix
    Registriert seit
    21.07.10
    Beiträge
    13.402
    ...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.

  6. #1506
    reztuneB retreirtsigeR Avatar von EpicFail
    Registriert seit
    16.11.11
    Beiträge
    3.826


    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:

    Code:
    	private static char methode1(int c, int d) {
    		return (char) (Math.pow(c, d));
    	}
    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?

    Und was genau würde jetzt hier zurückgegeben werden? Die Zahl die da rauskäme oder das Zeichen zur Zahl aus dem Unicode?
    Zitat Zitat von Austra Beitrag anzeigen
    Dort herrscht Dauerkrieg zwischen den Feminazi-Ökofaschisten und und Konservativen-FDP-AfD-Nazis

  7. #1507
    Puhuhu Avatar von Slaan
    Registriert seit
    29.09.10
    Ort
    Hànbǎo
    Beiträge
    15.142
    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

    Code:
    private static char methode1(int c, int d) {
      char result = (char) (Math.pow(c, d));
      return result;
    }
    Zum zweiten: Warum überhaupt n char zurückgeben Emoticon: psyduck. 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.

    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

  8. #1508
    reztuneB retreirtsigeR Avatar von EpicFail
    Registriert seit
    16.11.11
    Beiträge
    3.826
    Ich habe die Methode nicht geschrieben, wir sollten nur eine schon gegebene Klasse verstehen und ein wenig umschreiben für die erste Aufgabe, daher ist da wohl auch nicht so viel Sinn dahinter

    Aber vielen Dank

    Vielleicht finde ich mich hier in nächster Zeit auch mal öfter ein
    Zitat Zitat von Austra Beitrag anzeigen
    Dort herrscht Dauerkrieg zwischen den Feminazi-Ökofaschisten und und Konservativen-FDP-AfD-Nazis

  9. #1509
    Puhuhu Avatar von Slaan
    Registriert seit
    29.09.10
    Ort
    Hànbǎo
    Beiträge
    15.142


    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

  10. #1510
    Beyond Mars Avatar von [VK]
    Registriert seit
    05.02.08
    Beiträge
    59.537
    Zitat Zitat von Slaan Beitrag anzeigen
    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 mac0hen...

    Also lieber

    Code:
    private static char methode1(int c, int d) {
      char result = (char) (Math.pow(c, d));
      return result;
    }
    Weiß nicht, ich hätte eher gesagt, gerade bei Einzeilmethoden einfach in return das schreiben ist übersichtlicher...

  11. #1511
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757

  12. #1512
    Puhuhu Avatar von Slaan
    Registriert seit
    29.09.10
    Ort
    Hànbǎo
    Beiträge
    15.142
    Zitat Zitat von [VK] Beitrag anzeigen
    Weiß nicht, ich hätte eher gesagt, gerade bei Einzeilmethoden einfach in return das schreiben ist übersichtlicher...
    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

    Code:
    long.ass.object.call.that.noone.likes.set(int a);
    ist; und die sollte man sowieso nicht machen...

    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

  13. #1513
    reztuneB retreirtsigeR Avatar von EpicFail
    Registriert seit
    16.11.11
    Beiträge
    3.826
    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:
    Code:
    String[] testarray = new String[4];
      public konstruktor1(testarray) {
    }
    noch so:

    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
    Zitat Zitat von Austra Beitrag anzeigen
    Dort herrscht Dauerkrieg zwischen den Feminazi-Ökofaschisten und und Konservativen-FDP-AfD-Nazis

  14. #1514
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von EpicFail Beitrag anzeigen

    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
    Die Länge eines Arrays ist nicht Bestandteil des Typs. Konsequenz: man kann einer Methode, welche ein Array erwartet, Arrays unterschiedlicher Längen übergeben.

  15. #1515
    reztuneB retreirtsigeR Avatar von EpicFail
    Registriert seit
    16.11.11
    Beiträge
    3.826
    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 ?
    Zitat Zitat von Austra Beitrag anzeigen
    Dort herrscht Dauerkrieg zwischen den Feminazi-Ökofaschisten und und Konservativen-FDP-AfD-Nazis

Seite 101 von 202 ErsteErste ... 5191979899100101102103104105111151201 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •