- Messaggi: 39
- Ringraziamenti ricevuti 10
Accedi al sito per partecipare alle discussioni.
Accedi al sito per partecipare alle discussioni.
/**
*
* @author roberto
*/
public class TRA_J8_Cerchio{
/**
* @param args the command line arguments
*/
public static void main(String args) {
// TODO code application logic here
System.out.print("Es. recupero secondo quadrimestre es.8 con Java con i calcoli per la circoferenza e l'area del cerchio\n\n");
Cerchio cerchio = new Cerchio();
System.out.print("Visualizzazione della circonferenza del cerchio: %.2f" + cerchio.circonferenzaCerchio());
System.out.println("Visualizzazione dell'area del cerchio: %.2f"+ cerchio.areaCerchio());
}
}
package tra_j8_cerchio;
/**
*
* @author roberto
*/
public class Cerchio extends TRA_J8_Cerchio{
public float raggio = 5;
final double PIGRECO = 3.14;
public double circonferenzaCerchio(){
double circonferenza = (2 * raggio * PIGRECO);
return circonferenza;
}
public double areaCerchio(){
double area = ((raggio * 2) * PIGRECO);
return area;
}
}
Si io ero abituato al linguaggio C, e vedere questa cosa in Java che funziona oin modo differente mi aveva mandato in cirsi di stress non poco. Già per esempio mi bloccavo fin dall'inizio per queste cose banali.Il primo problema è dato dal fatto che hai un double (3.14) e cerchi di assegnarlo a una variabile double. In java quando fai un assegnamento tipo x = 3.14, quel "3.14" viene interpretato come double e poi assegnato a cos'hai a sinistra. Se a sinistra hai una variabile di
tipo float, java cerca di convertire il numero da double a float. In Java le variabili double sono appunto "il doppio" in termini di dimensione di un float, quindi convertendo da double a float hai potenzialmente una perdita di informazione (dipende dal numero e da quante cifre ha).
Pure questo mamma mia...Per il secondo problema stai chiamando nel main direttamente i metodi (areaCerchio e Circonferenza) così come sono, come se fossero funzioni. Il problema è che quelle non sono funzioni ma metodi di una classe, quindi prima devi istanziare un cerchio (Cerchio c = new Cerchio(40)) e poi su quella istanza (c) chiamare i metodi, ad esempio "c.Circonferenza()".
Questo è la cosa più mi ha fatto sclerare.L'errore "cannot find symbol" è dato dal fatto che scritto così sembra una funzione, java va a caccia di una funzione e non ne trova nessuna che si chiama così (perché in realtà era un metodo).
Assolutamente mi ha datto felicità ricevere risposta su queste cose, e pur nonostante non stessi ricevendo risposta non mi sono caduto di morale e mi sono messo a studiarmi un pò seguendo anche qualche video di Edoardo Midali (molto bravo).Spero di essere stato d'aiuto
MA perché no ahahahah. Dico che dopottutto ero cosciente che praticamente la stragrande maggioranza della gente del sito non ne sapesse quasi una sega di ste cose, ma ho confidato comuqnue in quella piccola percentuale di qualcuno che conosca la materia. Inoltre ho pure approfittato perché la gente del sito è ben molto più cordiale di altri siti dove è più frequente rispondere in modo brusco,.... Quindi mi sono detto è come cogliere due piccioni con una fava,.P.S. Che cavolo ci fa una domanda del genere su LC? :D
Accedi al sito per partecipare alle discussioni.