Converter für Binär, Oktal, Dezimal und Hexal

Dieses Thema im Forum "Java/Mono/dotGNU" wurde erstellt von betaros, 11.01.2012.

  1. #1 betaros, 11.01.2012
    betaros

    betaros Computerspezi

    Dabei seit:
    02.02.2008
    Beiträge:
    181
    Zustimmungen:
    0
    Moin,

    ich bereite mich zur Zeit auf meine Prüfungen für die Uni vor und da habe ich einen kleinen Converter geschrieben, der die Zahlen ineinander umrechnet.

    Mein Programm: BinOctDecHex

    Nun bin ich in Java blutiger Anfänger und wollte euch fragen, falls ihr Zeit und Lust habt mir ein paar Tipps zu geben, wie ich meinen Quellcode noch optimieren könnte.

    Vielen Dank schonmal im voraus.

    betaros
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 amöbe, 12.01.2012
    Zuletzt bearbeitet: 12.01.2012
    amöbe

    amöbe Tripel-As

    Dabei seit:
    21.01.2007
    Beiträge:
    188
    Zustimmungen:
    0
    Zunächst voraus: Es ist recht schnell eine kleine List zusammen gekommen, nicht irritieren lassen ;) Wahrscheinlich ist kaum etwas hier für die Prüfung wichtig.

    Du solltest deinen code, wenn du ihn eincheckst nicht direkt in die oberste Ebene des SVN-Repositorys packen, sondern in den Ordner "trunk".

    Du könntest die Terminal-Methoden mittels eines statischen Imports einbinden, und statt System.out.println die Methode von Terminal verwenden. Oder die Terminal-Klasse ganz weglassen. Oder (aus OOP-Sicht wohl am Besten) sie nicht-statisch machen.

    Du könntest die eigentlichen Konvertierungsmethoden in eine eigene Klasse packen. Es ziemlich unschön im GUI-Code die Main-Klasse von dem Konsolen-Code zu importieren. Oder am besten in mehre Klassen, nach Eingabe-Kodierung sortiert. Oder du konvertierst die Eingabe stets z.B. zu binär und dass dann immer zurück.

    Du könntest für jede der Konvertierungsmethoden je eine eigene Klasse machen, diese Klassen ein Interface implementieren lassen, und dann je nach user-Eingabe eine anderes Objekt zur Konvertierung nehmen. (So wie hier: https://github.com/bxt/Ludus/blob/master/unilectures/src/bxt/unilectures/vorkurs/pi/CalculatePi.java)

    Du könntest alle (oder zumindest die nicht-privaten) Methoden mit Javadoc versehen.

    Du soltest die GUI-Funktionalität zum Anzeigen von "Bitte die Eingabe ueberpruefen" in eine eigene Methode auslagern. (In Prüfungen, gerade handschriftlich spart man sich so zudem Zeit)

    Du könntest die GUI-Prüfer containsOnly* als aufrufe einer allgemeineren containsOnly(List<Char>, String input) schreiben. Du könntest sie auch als Reguläre Ausdrücke schreiben. Mindestens solltest du bei containsOnlyOctal den Aufruf von containsOnlyNumbers aus der Schleife ziehen.

    Du könntest die containsOnly* in eine andere Klasse schreiben.

    Du könntest deinen ganzen GUI-Code mehr MVC-mäßig aufbauen. Und dann den CLI-Code als andere View implementieren.

    Du könntest überprüfen, welche Methoden privat sein können.

    Du könntest statt pot() die Methode Math.pow() verwenden.

    Du solltest die Variable binaryLength in der Methode binaryToDecimal() umbenennen zu etwas wo man den Unterschied zu binary.length() sieht, z.B. binaryRestLength. Du könntest binaryLength--; eine Zeile weiter hoch schreiben und dadurch in der anderen Zeile ein -1 sparen.

    Du könntest die binarySmall-Variable mit substring() erstellen.

    Du kannst decimalToBinary mit integer-Division implementieren, indem du nach der Division verdoppelst und vergleichst, statt Modulo zu nehmen.

    Du könntest statt den } else if (binarySmall.equals("1001")) { eine Map verwenden. Ab Java 7 auch ein switch.

    Du kannst dir das String.valueOf() bei Strings sparen.

    Du könntest statt System.out.println die System.out.printf nehmen und die Strings in eine Property-Datei packen.
     
  4. #3 betaros, 12.01.2012
    betaros

    betaros Computerspezi

    Dabei seit:
    02.02.2008
    Beiträge:
    181
    Zustimmungen:
    0
    Vielen Dank für die vielen Tipps und Hinweise. :winke:

    Ich werde mich mal ransetzen und das Programm optimieren. Das mit dem pot() habe ich selber geschrieben, weil ich möglichst viel selbst machen wollte, um zu verstehen wie es funktioniert :D

    Zu der GUI: Ich habe das erste mal eine GUI gebastelt (mit dem WindowBuilder in Eclipse) und wollte damit sowieso noch etwas rumspielen :]

    Falls ihr noch weitere Tipps habt: immer her damit^^

    betaros
     
Thema: Converter für Binär, Oktal, Dezimal und Hexal
Besucher kamen mit folgenden Suchen
  1. oktal in dezimal java

Die Seite wird geladen...

Converter für Binär, Oktal, Dezimal und Hexal - Ähnliche Themen

  1. C++ -> Java converter für Linux

    C++ -> Java converter für Linux: Hallo erstmal, ich habe eine kleine Konsolen-Anwendung in C++ geschrieben und nun hat ein Freund mich gefragt, ob ich die nicht auch für's...
  2. Fileconverter für die Shell

    Fileconverter für die Shell: Hallo Stehe im Moment vor einem kleinen Problem. Habe hier eine CD bekommen, auf der einige 100MB Documente liegen. Diese sollen nun nach...
  3. Video Converter

    Video Converter: Hallo, Ich suche einen video to mp3 converter. hoffe mir kann da jemand weiter helfen. Gruß Stefan92
  4. Mysqldump to PHP Converter

    Mysqldump to PHP Converter: Hey, Gibt es ein Script/Programm/oder ähnliches, womit ich ein mysqldump von phpmyadmin in PHP konventieren kann? Also in ein "PHP Setup...
  5. Video Converter??

    Video Converter??: Hi, ich suche einen Video Converter in etwa wie VirtualDub(mod) in windoof.....kann aber nirgends sowas finden.... Als system nutze ich Ubuntu...