2010-05-29 13 views
6

Sto imparando Java e OOP e ho fatto i problemi allo Project Euler per esercitarsi (fantastico sito btw).I modi migliori per riutilizzare i metodi Java

mi ritrovo a fare molte delle stesse cose più e più volte, come:

  • verificare se un intero è primo/generazione di numeri primi
  • generando la serie di Fibonacci
  • verificare se un numero è un palindrome

Qual è il modo migliore per archiviare e chiamare questi metodi? Devo scrivere una classe di utilità e quindi import? In tal caso, importare un file .class o la fonte .java? Sto lavorando da un editor di testo semplice e dal terminale Mac.

Grazie!

+1

+1 per euler e ideologia java – miku

+1

La codifica senza IDE è un buon modo per imparare una lingua. Per favore, non pensare di poter continuare in questo modo quando sei su un progetto Java su larga scala, però. – jasonmp85

risposta

5

È possibile inserire i metodi in una classe di utilità, quindi import quella classe (non il file!).

import my.useful.UtilityClass; 

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

Quando le cose cominciano a diventare più complicate, e si desidera riutilizzare le tue cose su più progetti, si può mettere in un vaso e aggiungere quel vaso ai progetti. Quindi puoi import e usare la classe allo stesso modo di sopra.

+0

a cosa si riferisce 'my.useful.UtilityClass', il file' my.useful.UtilityClass.class'? – carillonator

+1

No, il file 'my/useful/UtilityClass.class' lì relativo al classpath :) – BalusC

+0

aha - grazie !! – carillonator

0

Perché non creare un file jar, una libreria dei propri componenti utilizzati spesso? Se si compila il codice java, è sufficiente includere l'archivio delle utility nel classpath.

1

L'idea UtilityClass va bene, ma ti dà anche l'opportunità di esercitarti su TDD. Per un nuovo problema di Eulero, crea un metodo vuoto nel tuo UtilityClass dove risolvi il problema. Quindi crea un gruppo di JUnit tests che utilizza questo nuovo metodo e dipende dal fatto che sia corretto. I test falliranno tutti (o dovrebbero, perché non hai ancora scritto la soluzione!)

Ora risolvi il problema di Eulero e guarda passare i test! Se si desidera riutilizzare il codice in un secondo momento, i test dell'unità ti manterranno corretti durante il refactoring e forniranno un posto dove aggiungere casi di regressione per i bug che potresti trovare.

+0

grazie per l'introduzione a TDD e JUnit. – carillonator

1

Creare un albero di directory con le risposte. il mio/math/*. java. È necessario specificare il pacchetto my.math per la classe. Creare classi diverse per set di problemi diversi; Primes.java, Fibonacci.java, ecc. Se hai già risolto il problema una volta, non risolverlo di nuovo, a meno che la tua soluzione non sia rotta.

Aggiungere la directory sopra my/Math al classpath (directory java -cp) o inserire la directory e aggiungerla al classpath.

Biblioteche come questa sono la linfa vitale di un progetto di successo. La creazione e l'uso di una libreria di soluzioni (per le quali la lingua non ha già una libreria) risolve un numero di problemi di progetto. Utilizzare le librerie disponibili quando possibile.

+0

buoni consigli dettagliati, grazie. – carillonator

Problemi correlati