.dsy:it. Pages (5): « 1 2 3 [4] 5 »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- [JAVA][HELP] Stringbuffer (http://www.dsy.it/forum/showthread.php?threadid=15736)


Posted by K)M4STER on 14-12-2004 12:42:

Mi permetto di risponderti io, perchè stai facendo moooooolta confusione...

1- Devi per forza dichiarare una nuova classe se vuoi gestire una tua eccezione, ci sarebbero altri modi, ma non soddisfano le richieste quindi sì, fai come ti ha detto bodom...

2- Il costruttore serve quando dichiari una nuova classe per far capire cosa deve fare nel caso venga richiamata quella classe. Quindi devi utilizzare sia try...catch che throw (ma non nella classe dell'eccezione), infatti nel try inserisci quello che il programma deve fare nel caso non ci sia un'eccezione, se invece c'è un eccezione (nel nostro caso se massa o distanza sono < di 0) lanci tu l'eccezione con throw e di conseguenza la JVM riconosce un eccezione (dato che tu stesso hai esteso la classe InvalidBlabla con Exception) e quindi esce dal blocco try e finisce nel catch(InvalidBlaBla e)

3-Puoi fare tutto in un file solo, non ti serve fare tre file... L'importante è che non dichiari le classi public (altrimenti dovresti per forza creare 3 file diversi)

Dato che utilizzi un file solo può esserci solo un main() altrimenti la JVM non capisce da dove partire. L'unica classe che necessita di main è CentroControllo, dato che CorpoCeleste è solo una classe che serve per creare un nuovo Corpo Celeste, ma lo scopo del programma è quello di calcolare se un corpo celeste è anomalo o meno....

Spero di essere stato abbastanza chiaro....


Posted by BodomChild on 14-12-2004 14:59:

caro zeus allora vediamo un po...

1)
Tieni presente che la classe Exception e' UNA classe.
Qualunque classe puo' essere estesa ereditando i parametri della classe madre (tra l'altro e' stata la lezione di Mereghetti oggi) comunque vediamo piu a fondo:
Esiste la classe Exception con tutti i suoi parametri e il suo codice che ha un certo contratto. Nel senso che alla fine fa qualcosa di specifico.
Benissimo sappiamo che questa classe lancia eccezioni quando qualche evento la provoca. Ora tu dovrai estendere la classe Exception con una classe che inventi tu:

code:
class EccezioneZeus extends Exception{ public EccezioneZeus(){ } }

Allora vediamo: Hai creato un eccezione che si chiama EccezioneZeus che ESTENDE la classe Exception.
Quindi la tua eccezione eredita tutto quel che fa la classe Exception a priori e poi aggiunge la tua classe con i vari metodi etcc... dentro la tua public EccezioneZeus().
----------------------------------------------------------
Fai una prova di lancio di eccezione.
nello stesso file prova a fare questa cosa:
code:
import prog.io.*; class EccezioneZeus extends Exception{ public EccezioneZeus(){ } } /*come vedi metti piu classi nello stesso file source (ci pensa poi il compilatore a fare diversi file .class*/ class LancioEccezione{ public static void main(String[] Args){ ConsoleInputManager in=new ConsoleInputManager(); ConsoleOutputManager out= new ConsoleOutputManager(); EccezioneZeus ouch=new EccezioneZeus(); /*se succede qualcosa in particolare che decidi TU!! allora verra' lanciata -ouch- che a sua volta richiama la tua nuova eccezione*/ int a,b; //hmm che so ste cose? ah si variabili intere ecco a=in.readInt("Inserisci a: "); b=in.readInt("inserisci b: "); /*il codice di seguito puo' essere causa di eccezione percio' lo mettiamo tra graffe try* if(a<b){ try{ throw ouch; } catch(EccezioneZeus e){ out.println("E' stata provocata un eccezione di tipo "+e.toString()); out.println("ATTENZIONE A e' minore di B!!!!!!!"); } }else{ out.print("Tutto regolare a e' maggiore di b!"); } } }

E' vero che avresti potuto fare il tutto senza blocco try. Ma questo e' solo un esempio. Tu calcola che le Eccezioni vengono provocate durante l'esecuzione dei programmi in alcune situazioni.. come ad esempio se tenti di mettere una variabile in un array in una posizione negativa viene provocata un eccezione. Quindi questo ti serve per poterle Gestire.
--------------------------------------------------------------------------
Il metodo main() va usato una volta sola, se no come dice giustamente KMASTER la JVM non sa piu' dove andare a pescare i pesci.
--------------------------------------------------------------------------
in un file source (*.java)
puoi specificare tutte le classi che ti servono basta che esse non siano public.
Mi spiego:
code:
class Pippo{ public Pippo(){ } } class FerdinandoSanFrancescoEtuttiGliApostoli{ public FerdinandoSanFrancescoEtuttiGliApostoli(){ } } class EccezioneAllaRegola extends Exception{ public EccezioneAllaRegola(){ } } class CorpoTurchese{ public CorpoTurchese(){ } public static void main(String[] args){ } }

e via dicendo..... quando compili il compilatore ti fa trovare tanti *.class quante classe hai creato.

Spero di esserti stato utile ed aver risposto almeno a qualcuna delle tue domande.
Ora ti saluto se hai altri dubbi non esitare..
Ciao ciao.

__________________
http://www.poseidon-official.com


Posted by BodomChild on 14-12-2004 14:59:

Ho premuto 2 volte invia reply ^^.. ops

__________________
http://www.poseidon-official.com


Posted by Michæl on 14-12-2004 16:02:

Corpo Celeste [Turno 1]

C'è qualcosa che non mi quadra..

Perchè un punto del primo esercizio prevede la definizione di un costruttore?
Se non ricordo male, non abbiamo ancora affrontato questo argomento..

:?

__________________
.. alæ lucis, tenebris conspersis, mortem retinere nunquam postea, ad cælum exlamaverunt..


Posted by zeus on 14-12-2004 16:20:

grazie ad entrambi

:lode: per bodom

e...

Mi permetto di risponderti io, perchè stai facendo moooooolta confusione...



si..... già..... e vi ringrazio per avermi dato alcune valide spiegazioni, credo che però avrò ancora confusione fino a quando non finisco l'esercizio... perlomeno adesso ho alcuni ulteriori strumenti di comprensione.

Grazie a tutti e due

__________________
-- spammopoco --


Posted by BodomChild on 15-12-2004 14:13:

sfoglia il libro cerca su internet cerca sui lucidi delle lezioni vedraiche trovi tutto! ;)

__________________
http://www.poseidon-official.com


Posted by Just on 18-12-2004 11:33:

Prog

qualcuno mi pò aiutare!!!
ma la classe CorpoCeleste e CentroControllo devono stare nello stesso file??
l'eccezione dove deve stare??

HELP!!!!:?


Posted by Just on 18-12-2004 12:35:

Scusate ma le due classi sono nello stesso file? io l'ho fatti in due file e l'eccezione la creo nel fatto nel file CorpoCeleste.java.
In CorpoCeleste.java non ci vuole il main?


Posted by zeus on 18-12-2004 12:56:

Ti dico le uniche cose sicure che so...

Nella classe CorpoCeleste non serve il main e probabilmente non DEVE proprio esserci, in ogni caso non fai un metodo main ma quelli che sono stati chiesti.

Ci sono vari modi per scrivere più classi, ma il prof. mi ha consigliato di scrivere le classi in file java separati, quindi in questo caso 3, in quanto il compilatore, quando legge il file java CorpoCeleste cerca le altre classi (.class) e se non le trova cerca i .java corrispondenti e compila tutto in una volta.

Se scrivi diverse classi in un file unico, potrebbe presentare dei problemi, anche se a volte si può fare (o almeno così ho letto).

Come saprai, per sottoporre più file per un esercizio, fai uno zip dei .java.

Spero di averti aiutato.

Ciao :)

__________________
-- spammopoco --


Posted by 0m4r on 18-12-2004 14:41:

http://www.dsy.it/forum/showthread....&threadid=15736

Off-Topic:
ma usare il search prima di postare no è?

__________________
http://www.twitter.com/0m4r


Posted by BodomChild on 19-12-2004 00:38:

Originally posted by 0m4r
http://www.dsy.it/forum/showthread....&threadid=15736

Off-Topic:
ma usare il search prima di postare no è?


Quello e' vero...
ma comunque Just le risposte alle tue domande sono tutte in questo thread.
nel mio esercizio e' la classe corpoceleste che contiene il main()

__________________
http://www.poseidon-official.com


Posted by Deathwing on 19-12-2004 16:07:

fondamentalmente, per me il problema è che non so nulla di fisica, non conosco le formule necessarie allo svolgimento dell'esercizio, non riesco a pensare una procedura adatta.

Questo al di là della sua possibile applicazione in Java.

Oltre a questo, che significa corpo celeste "anomalo" ?

__________________
- Io sono la polvere e l'argento. -


Posted by 0m4r on 19-12-2004 17:07:

non leggere il problema dal punto di vista FISICO che non è sicuramente l'intento del docente di Inormatica Generale. Leggi le specifice e usa quelle come uncica informazione. Io credo che per lui il fatto di calcolare la forza gravitazionale come somma dei valori di input o come qualsiasi latra combinazione di questi ultimi sia del tutto indifferente. a lui non interessa il risultato finale in se, ma l'lagoritmo per raggiungerlo dove la formula per g è insignificante.

Il corpo anomalo è semplicemente un corpo in per cui la forza gravitazionale sia inferiore alla soglia che indichi....

__________________
http://www.twitter.com/0m4r


Posted by Deathwing on 19-12-2004 17:29:

A questo punto non riesco a comprendere
cosa io effettivamente debba mostrare (ovvero: quale codice io debba mostrare) con l'esercizio.
(se come dici il risultato non conta)


Posted by 0m4r on 19-12-2004 17:46:

non è che il risultato non conta.... è che deve essere cmq giusto.
supponiamo che tu inserisci come massa 5 e distanza 10 e che calcoli la forza gravitazionale come (massa*distanza*2) - è una formula a caso, che come ti dicevo prima, dal mio punto di vista non è fondamentale - quindi per i dati inseriti la forza gravitazionale sarà 100.

Supponiamo che la soglia da te scelta sia di 50. Dato che 100>50, a seconda del fatto che il testo dell'esercizio ti dica che il corpo sia anomale o meno se fg>soglia o vice versa, il risulatato dovrà essere rispettivamente vero o falso...

spero di essere stato più chiaro.

Poi, sottolineo, che questo è il mio punto di vista e che se qualcuno, a ragione, mi voglia smentire.... ben venga!

__________________
http://www.twitter.com/0m4r


All times are GMT. The time now is 21:06. Pages (5): « 1 2 3 [4] 5 »
Show all 75 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.