Vai al contenuto

Programmare In Java Su Mac


peppesc

Messaggi raccomandati

Ciao a tutti!

Sono uno studente al primo anno di Ingegneria Informatica. Fino all'acquisto del mio macbook pro, usavo, per il corso Programmazione 1, il pc con windows. Per programmare in java scaricai la jdk ed eclipse. Da quando ho acquistato il mio nuovo mac ho le idee molto confuse a riguardo. La cosa che più non riesco a capire è in Eclipse, quando voglio creare una classe, mi segnala il seguente messaggio " The use of the default package is discouraged". Cosa significa?La JDK bisogna scaricarla o è già presente nel mio mac?C'è qualcuno che potrebbe chiarirmi le idee a riguardo con un discorso puntato e dettagliato riguardo il programmare in java su mac?grazie mille in anticipo!

Link al commento
Condividi su altri siti

Io ti non ti posso aiutare,se non dicendoti di cercare su google,o di provare a usare Java all'interno di Xcode

--------------------------------------

iMac 27" Core i5-750 2.66Ghz / Ati Radeon 4850 HD

--------------------------------------

Link al commento
Condividi su altri siti

Ciao!

Allora, la jdk è già presente sul tuo mac. Se non sbaglio dovresti trovare già installate la 1.5 e la 1.6.

Quindi tu scarica eclipse e comincia pure a programmare come facevi prima.

Per quanto riguarda il messaggio "The use of the default package is discouraged" non ti preoccupare, è solo un Warning.

Significa che è fortemente consigliato, ma non obbligatorio (e quindi non fonte di errore) creare dei package e mettere lì le tue classi, anziché usare quello di default senza nome.

Questo perché, qualora tu creassi una libreria e tu intendessi usarla all'interno di altri programmi java, i package sono il modo che java ha di identificare una classe in modo univoco rispetto ad altre con lo stesso nome.

Ti faccio un esempio:

Se io creo la classe QuickSorter (che implementa l'omonimo algoritmo di ordinamento) e poi implementi anche te una classe chiamata QuickSorter (medesima cosa) e intendessi fare un confronto di prestazioni tra la mia e la tua, quando scrivi l'istruzione

QuickSorter q = New QuickSorter()

Come fa secondo te Java a capire se vuoi creare un'istanza della mia classe o la tua?

Ecco, lo fa con i package.

Se ad esempio la mia classe sta nel package "it.canemacchina00", importando il mio package (ovvero scrivendo in alto impor it.canemacchina00.QuickSorter) oppure referenziando la mia classe in modo diretto (scrivendo

it.canemacchina00.QuickSorter q = New QuickSorter()

invece di

QuickSorter q = New QuickSorter()

) java capisce perfettamente quale classe stai cercando di istanziare.

Sono stato chiaro?

Ah ecco, per creare un package basta che fai click destro sul progetto nuovo->package e gli dai un nome. Dato che dovresti far in modo che il nome sia univoco, c'è una convenzione non scritta che dice che il nome del package dovrebbe essere l'url dal quale scarichi la libreria (al contrario) seguito da un nome che indica che classi conterrà.

Es: stai sviluppando una libreria di algoritmi di ordinamento per l'università, devi scegliere un nome di un package (ammettiamo che studi a firenze, come me e che ti chiami mario rossi :fiorellino::p:p).

io userei

it.unifi.mariorossi.sorters

oppure

it.unifi.[nome del corso].sorters.

In ogni caso:

  1. l'uso dei package non è obbligatorio, quindi puoi anche non usarli e tutto funziona.
  2. la scelta del nome è completamente libera, lo schema che ti ho dato io prima in genere è quello più usato perché è abbastanza certo che si vengano a crare nomi di package univoci.

Ciao ciao!

Link al commento
Condividi su altri siti

Sei stato davvero gentilissimo ora riesco a "programmare"!!Un ultima cosa..in conclusione tu cosa mi consigli di fare?Creare un package mio(ci ho provato ma dice che non si possono inserire punti nel nome del package e ho chiuso tutto), o continuare senza?

Link al commento
Condividi su altri siti

Come non ti fa mettere i punti..

I punti sono fondamentali per dividere i package in cartelle!

Se crei un package chiamato it.canemacchina00.sorters, nella cartella dei sorgenti eclipse ti creerà automaticamente una cartella chiamata it, poi dentro ad it una sottocartella chiamata canemacchina00, ed ancora dentro a canemacchina00 una cartella chiamata sorters. Tutte le classi che poi metterai dento al package it.globalbase.sorters andranno nella cartella sorters (che ripeto, è sotto al path it/canemacchina00)

Ovviamente è OBBLIGATORIO che una classe che sta sotto il package it.canemacchina00.sorter stia dentro la cartella sorters.

In questo modo il codice è anche molto organizzato!

Il nome del package non deve iniziare o terminare con un punto (proprio perché viene considerato da eclipse il separatore di cartelle, quindi non saprebbe che fare nel caso di un package che inizia o finisce con un punto) ma al suo interno li puoi mettere (occhio: it.canemacchina00 va bene, it..canemacchina00, con 2 punti, non va bene!).

Se fai click destro sul progetto e poi premi su new->package crei un package e usando le convenzioni (sui punti) che ti ho detto, puoi scegliere il nome.

Venendo alla tua domanda: package o non package? La risposta è: come vuoi.

Devi considerare alcuni fattori:

  1. usare i package è comodo per tenere organizzato il codice. Immagina di scrivere un'applicazione fatta da circa 40/50 entità tra classi astratte, interfacce e classi concrete. Riuscire a ritrovare una classe o un'altra se queste sono messe tutte alla rinfusa nel package di default (senza nome) o in un solo package non è facile, né per te né per chi lavorerà con te o userà la tua libreria. Se fossero divise in più package, magari per tipo, sarebbe più facile gestire il codice. Per esempio potrei creare un package chiamato it.canemacchina00.utils.sorters, dove metto tutta una serie di classi per gli ordinamenti, poi uno it.canemacchina00.utils.dataStructures, dove metto tutte le strutture dati che creo (nota: entrambi sono sotto it.canemacchina00.utils, dove so che ci stanno le classi di utilità), poi uno it.canemacchina00.gui dove metto le classi che realizzano l'interfaccia grafica, ecc.......
    Il codice così è decisamente più gestibile.
  2. come ti dicevo prima, usare i package è il modo che hai per far si che la tua classe QuickSorter sia riconosciuta in modo univoco dalla mia classe QuickSorter, quindi se devi distribuire il codice a giro (anche darlo ad un professore è distribuirlo) fa comodo aver usato i package
  3. è anche però vero che non è indispensabile, il codice compila e gira anche senza l'uso dei package, quindi non è obbligatorio.

il mio consiglio è di usarli, giusto per fare l'abitudine a tenere il codice pulito ed ordinato (cosa FONDAMENTALE quando devi fare progetti un po' più complessi di 3 classi di prove).

In ogni caso sentiti libero anche di non usarli, magari per fare le prime prove con Java (se sono per te le prime prove eh! Se non lo sono, scusa). Io per esempio su eclipse ho un progetto chiamato Test dove faccio tutte le prove al volo (magari provo librerie scaricate, oppure provo alcune cose che imparo) nel quale non ho creato nessun package, tanto quel codice rimane lì solo per mia momentanea utilità.

Per il resto, io li creo sempre, anche fosse un progettino fatto di 2 classi. Odio vedere i warning nel progetto! :barella::p:p:p

Link al commento
Condividi su altri siti

in Java *devi* usare i package; il non usarli non ti dà errore ma va contro le best practices così come dare nomi maiuscoli ai metodi o simili.

Se ti abitui a codificare seguendo le linee guida più usate da un certo linguaggio (in questo caso Java, ma vale in generale) ti troverai molto più a tuo agio quando dovrai lavorare con qualcuno.

Vale comunque sempre l'assunto di base: prima di iniziare a buttare giù codice, studiane le basi!!!

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...