Ergebnis 1 bis 17 von 17

Thema: [Tutorial] Java #2 - Von Variablen und anderen Wundern

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Kurze Notiz für die fortgeschritteneren Leser: ich hätte eigentlich gerne noch Sachen wie ++, += und sowas reingenommen, aber das Kapitel wurde immer länger und länger. Evtl. werde ich das nachträglich nochmal umstrukturieren.

    Außerdem hätte ich eigentlich sehr gerne noch Input mit reingenommen, aber folgendes will ich keinem Anfänger antun:

    Code (Java):
    int meinezahl;
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    try {
        meinezahl = Integer.parse(br.readLine());
    } catch(IOException e) {
        System.out.println("Konnte nicht lesen.");
    } catch(NumberFormatException e) {
        System.out.println("Das ist keine Zahl.");
    }


    Hat jemand Ideen, wie ich sowas schonender beibringe?

  2. #2
    Zitat Zitat von DFYX Beitrag anzeigen
    Hat jemand Ideen, wie ich sowas schonender beibringe?
    Nicht wirklich. :-/ Java nimmt einem da eben nichts ab, wenn man einfach Nutzereingaben lesen will, muss man auf Script-Sprachen wechseln. <__<"
    Du könntest erstmal direkt Bytes aus System.in lesen, dann ersparst du dir immerhin die ganzen geschachtelten Konstruktoren. Wenn du dann System.out.write() verwendest, kannst du sie sogar wieder sinnvoll ausgeben. Alternativ sammelst du ein Array von Bytes und machst einen String draus. Und damit, dass das beides ziemlich grauenhaft ist, hast du auch gleich die Motivation, sie mit der "eleganteren" Variante zu quälen.

    Naja, und es gäbe natürlich noch java.util.Scanner, der das Beispiel immerhin schon deutlich vereinfachen würde. *kratz* Hm, eigentlich ist der wohl sogar die Lösung, aber das da oben will ich nicht umsonst getippt haben. XD

  3. #3
    Ich habe oft gesehen, dass auf bestimmte Themen solange verzichtet wird, bis genügend Wissen vermittelt wurde. Andererseits benutzt du auch bereits Packages und Module (Klassen natürlich sowieso), ohne, dass der Teilnehmer weiß wofür sie sind und wie sie funktionieren.
    Was diese angeht, hast du im vorherigen Tutorial geschrieben, dass dafür Grundkenntnisse der Objektorientierung benötigt werden, IMO ist Modulare Programmierung aber nicht (unbedingt) Teil der Objektorientierten Programmierung und kann vorerst zumindest vereinfacht an einem bildlichen Beispiel erklärt und später vertieft werden.

    BTW: Beim Kommentar zum ersten Codebeispiel, im Satz "Bei der zweiten Variante kann man den Typ selbst angeben" sollte "Typ" eigentlich "Wert", oder "Wert, mit dem initialisiert wird" heißen.

    Und bei der Aufzählung der Operatoren hast du die Klammern bei "Multiplikation" vergessen.

    Geändert von Kyuu (20.10.2009 um 13:31 Uhr)

  4. #4
    Zitat Zitat von Kyuu Beitrag anzeigen
    BTW: Beim Kommentar zum ersten Codebeispiel, im Satz "Bei der zweiten Variante kann man den Typ selbst angeben" sollte "Typ" eigentlich "Wert", oder "Wert, mit dem initialisiert wird" heißen.

    Und bei der Aufzählung der Operatoren hast du die Klammern bei "Multiplikation" vergessen.
    Fixed.

  5. #5
    Wieder sehr schönes übersichtliches Tutorial
    (Leider kann ich keine Rep-punkte geben, da ich zuerst ander bewerten musss :/)

  6. #6
    Zitat Zitat von DFYX Beitrag anzeigen
    Kurze Notiz für die fortgeschritteneren Leser: ich hätte eigentlich gerne noch Sachen wie ++, += und sowas reingenommen, aber das Kapitel wurde immer länger und länger. Evtl. werde ich das nachträglich nochmal umstrukturieren.

    Außerdem hätte ich eigentlich sehr gerne noch Input mit reingenommen, aber folgendes will ich keinem Anfänger antun:

    Code (Java):
    int meinezahl;
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    try {
        meinezahl = Integer.parse(br.readLine());
    } catch(IOException e) {
        System.out.println("Konnte nicht lesen.");
    } catch(NumberFormatException e) {
        System.out.println("Das ist keine Zahl.");
    }


    Hat jemand Ideen, wie ich sowas schonender beibringe?
    Du könntest eine Hilfsklasse erstellen die statische eine init und mehrere read Methoden bereitstellt. Oder halt in dieser Klasse ein Console Objekt benutzt. Dann kann man die einfach importieren was für Anfänger ja auch einfach sein sollte. Und wenn du dann Exceptions und OOP abgearbeitet hast kannst du dein Beispiel nochmal erklären.


    @ssj5000:
    Stimmt hast recht.
    Ich wusste garnicht das eine Scanner Klasse existiert, die Java API is irgendwie zu groß.

    Geändert von uncreative (15.11.2009 um 18:03 Uhr)

  7. #7
    Zitat Zitat von uncreative Beitrag anzeigen
    Du könntest eine Hilfsklasse erstellen die statische eine init und mehrere read Methoden bereitstellt. Oder halt in dieser Klasse ein Console Objekt benutzt. Dann kann man die einfach importieren was für Anfänger ja auch einfach sein sollte. Und wenn du dann Exceptions und OOP abgearbeitet hast kannst du dein Beispiel nochmal erklären.
    Anderer Punkt bei OOP: Man muss nicht Sachen neu erfinden die es schon gibt.

    Code:
    Scanner s = new Scanner(System.in);
    int i = s.nextInt()
    http://java.sun.com/j2se/1.5.0/docs/...l/Scanner.html

  8. #8
    Wo bleibt der nächste Teil? Wir wollen doch Java lernen!

    Nee, eigentlich wollte ich nur mal kurz berichten, wie Java bei mir in der Vorlesung beigebracht wird: Wir benutzen BlueJ, eine recht simple IDE mit eingebautem Debugger und vor allem Konsole, und alles, was unsere Methoden an Eingaben brauchen, bekommen sie über Argumente. Ich will damit nicht sagen, dass es hier genau so gemacht werden sollte, da hier der Fokus eher auf dem "ich will schnell etwas sinnvolles damit machen können" liegt, in der Vorlesung aber auf "Lernt, Algorithmen zu entwickeln, Programmierparadigmen anzuwenden und das ganze dann in Java zu implementieren" (weswegen wir auch in der 10. Vorlesung noch nicht über das Implementieren des Sieb von Eratosthenes und das Zusammenfassen von Variablen als Verbunde/Klassen hinaus sind). Und natürlich zäumen wir das Pferd von vorne auf und lernen erstmal, was OOP ist. ^^
    (auch anzumerken ist, dass unsere Vorlesungen alles andere als einsteigerfreundlich sind, und ich vermutlich arge Probleme hätte, wenn ich nicht schon einige andere Sprachen beherrschen würde...)

    Also, leider keine Lösung für dein Problem, Fyx, aber ich hab mir gedacht ich erzähls mal...

Berechtigungen

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