2010-05-29 7 views
6

Ich lerne Java und OOP, und habe die Probleme bei Project Euler für die Praxis (tolle Seite BTW).Beste Möglichkeiten, Java-Methoden wiederzuverwenden

finde ich mich viele der gleichen Dinge immer und immer wieder tun, wie:

  • prüft wird, ob eine ganze Zahl prim/Erzeugung Primzahlen
  • Erzeugen der Fibonacci-Reihe
  • prüft wird, ob eine Zahl a Palindrome

Was ist der beste Weg, diese Methoden zu speichern und aufzurufen? Soll ich ein Dienstprogramm Klasse schreiben und dann import es? Wenn ja, importiere ich eine .class Datei oder die .java Quelle? Ich arbeite mit einem einfachen Texteditor und dem Mac-Terminal.

Danke!

+1

+1 für euler und ide-losen Java-Codierung – miku

+1

Codierung ohne eine IDE ist eine gute Möglichkeit, eine Sprache zu lernen. Bitte denken Sie nicht, dass Sie in einem großen Java-Projekt so weitermachen können. – jasonmp85

Antwort

5

Sie können Ihre Methoden in eine Dienstprogrammklasse einfügen, dann import diese Klasse (nicht die Datei!).

import my.useful.UtilityClass; 

... 
boolean isPrime = UtilityClass.isPrime(2); 

Wenn die Dinge beginnen komplizierter, und Sie möchten, dass Ihre Sachen über mehrere Projekte hinweg wieder zu verwenden, können Sie es in ein Gefäß legen und dieses Glas zu den Projekten hinzuzufügen. Dann können Sie import und verwenden Sie die Klasse auf die gleiche Weise wie oben.

+0

Worauf bezieht sich 'my.useful.UtilityClass', die Datei' my.useful.UtilityClass.class'? – carillonator

+1

Nein, die 'my/nützliche/UtilityClass.class' Datei dort relativ zum Klassenpfad :) – BalusC

+0

aha - danke !! – carillonator

0

Warum erstellen Sie nicht eine jar Datei, eine eigene Bibliothek, oft verwendete Komponenten? Wenn Sie Ihren Java-Code kompilieren, schließen Sie einfach das Dienstprogrammarchiv in Ihren Klassenpfad ein.

1

Die UtilityClass Idee ist in Ordnung, aber es gibt Ihnen auch die Möglichkeit, TDD zu üben. Erstellen Sie für ein neues Euler-Problem eine leere Methode in Ihrem UtilityClass, wo Sie das Problem lösen werden. Dann machen Sie eine Reihe von JUnit tests, die diese neue Methode verwenden und davon abhängen, dass sie korrekt ist. Die Tests werden alle fehlschlagen (oder sie sollten, weil Sie die Lösung noch nicht geschrieben haben!)

Lösen Sie jetzt das Euler-Problem und beobachten Sie die Tests bestanden! Wenn Sie den Code später wiederverwenden möchten, halten Sie die Komponententests während des Refactorings für korrekt und Sie können Regressionsfälle für eventuell gefundene Fehler hinzufügen.

+0

danke für das Intro zu TDD und JUnit. – carillonator

1

Erstellen Sie einen Verzeichnisbaum mit Ihren Antworten. mein/math/* .java. Sie sollten das Paket my.math für die Klasse angeben. Erstellen Sie verschiedene Klassen für verschiedene Problemsätze; Primes.java, Fibonacci.java usw. Wenn Sie das Problem bereits einmal gelöst haben, lösen Sie es nicht noch einmal, es sei denn, Ihre Lösung ist kaputt.

Fügen Sie das Verzeichnis oberhalb von my/math Ihrem Klassenpfad (java -cp-Verzeichnis) hinzu oder jar das Verzeichnis und fügen Sie dieses dem Klassenpfad hinzu.

Bibliotheken wie diese sind der Lebensnerv eines erfolgreichen Projekts. Das Erstellen und Verwenden einer Bibliothek von Lösungen (für die die Sprache noch keine Bibliothek besitzt) löst eine Reihe von Projektproblemen. Verwenden Sie verfügbare Bibliotheken wann immer möglich.

+0

gute detaillierte Beratung, danke. – carillonator

Verwandte Themen