Attenzione che questo non è sempre vero. Quello che fai nel tuo esempio è il classico caso di creazione di un oggetto :)ho capito che per richiamare un metodo nel main devo fare <nomeclasse> <nomevariabile> = new <nomeclasse()> e poi <nomevariabile>.<metodo(argomenti)>
Quando crei un oggetto lo devi dichiarare (<nomeclasse> <nomevariabile>) e poi lo inizializzi (<nomevariabile> = new <nomeclasse()>); tale inizializzazione avviene tramite un costruttore dell'oggetto; in poche parole un costruttore è un metodo interno alla classe <nomeclasse> della forma seguente:
Codice:
public <nomeclasse> ( <eventuali argomenti> ){
<operazioni varie> ;
}
Btw definendo all'interno della classe un metodo del tipo:
Codice:
public void risolviequazione(...){
...
}
Come dicevo sopra non è detto che tu debba fare in questo modo, ci sono molte varianti. In breve:
Se crei un oggetto (come ad esempio hai fatto), questi potrà usare i metodi definiti nella classe di appartenenza per compiere azioni (come hai fatto nel tuo esempio quando scrivi <nomevariabile>.<metodo(argomenti)>); tali metodi sono quelli non statici. Se invece un metodo è dichiarato come statico non potrai scrivere <nomevariabile>.<metodo(argomenti)> perché il metodo diventa proprietario della classe che lo contiene e definisce (ovvero <nomeclasse>) e non delle entità create a partire dalla classe; in poche parole per poterlo utilizzare dovrai scrivere <nomeclasse>.<metodo(argomenti)>.
Il motivo per cui nel tuo esempio sei costretto a creare un oggetto per poter utilizzare il metodo dello stesso nel main è perché il metodo main è statico (come detto sopra non puoi chiamare metodi dinamici da metodi statici). Se invece provi a richiamare lo stesso metodo risolviequazione da un altro metodo della stessa classe (non statico) noterai che non ti serve creare un oggetto (a volte potrai trovare indicato this.<nome metodo(argomenti)>); il motivo è che quando richiami un metodo dinamico, lo stai facendo da un oggetto, quindi non ti serve riferirti nuovamente allo stesso (motivo per il quale spesso il this viene omesso; in realtà il motivo più frequente per cui viene utilizzato è ridurre l'ambiguità), a meno che obv tu non voglia riferirti ad un altro oggetto :)