Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - classi java. mi serve aiuto. grazie!
Forum - Java - classi java. mi serve aiuto. grazie!

Avatar
tomsamy93 (Normal User)
Newbie


Messaggi: 1
Iscritto: 16/03/2011

Segnala al moderatore
Postato alle 18:35
Mercoledì, 16/03/2011
innanzi tutto mi presento, sono tommaso!

qualcuno saprebbe dirmi cosa ha di sbagliato questo codice. grazie in anticipo!

MAIN:import java.io.*;
public class Esercizio

{public static void main(String[] args ) throws Exception
{BufferedReader input=new BufferedReader (
new InputStreamReader (System.in));

int a,b,c;
Triangolo t;

System.out.println("inserire i lati del triangolo");
String line=input.readLine();
a=Integer.parseInt(line);
line=input.readLine();
b=Integer.parseInt(line);
line=input.readLine();
c=Integer.parseInt(line);

t=new Triangolo(a,b,c);
t.Area();
t.Perimetro();

}

}

CLASSE:import java.io.*;

public class Triangolo{
public Triangolo(int a, int b, int c);
int lato1, lato2, lato3;
int area=0;
int perimetro=0;

public void Triangolo(int a, int b, int c){
lato1=a;
lato2=b;
lato3=c;}

public void Area(Triangolo t){
area=lato1*lato2*lato3;
System.out.println("l' area del triangolo è "+area);}

public void Perimetro(Triangolo t){
perimetro=lato1+lato2+lato3;
System.out.println("il perimetro del triangolo è "+perimetro);}
}

Ultima modifica effettuata da tomsamy93 il 16/03/2011 alle 18:37
PM
Avatar
Bonny (Member)
Expert


Messaggi: 437
Iscritto: 24/04/2009

Up
1
Down
V
Segnala al moderatore
Postato alle 20:19
Mercoledì, 16/03/2011
Nella classe Esercizio va tutto bene, in triangolo non capisco perchè prima di dichiarare le var
Codice sorgente - presumibilmente Java

  1. public Triangolo(int a, int b, int c);
  2. int lato1, lato2, lato3;
  3. int area=0;
  4. int perimetro=0;



hai scritto :
Codice sorgente - presumibilmente Java

  1. public Triangolo(int a, int b, int c);

,non si può scrivere cosi è sbagliato,forse ti confondi con i prototipi di funzioni in linguaggio C; al limite scrivi
Codice sorgente - presumibilmente Java

  1. public Triangolo(){}

ma è superfluo per qst esercizio basta il costruttore che hai definito sotto

Codice sorgente - presumibilmente Java

  1. //(costruttore 2)
  2. public void Triangolo(int a, int b, int c){
  3. lato1=a;
  4. lato2=b;
  5. lato3=c;}



Poi nei metodi Area() e Perimetro() non serve che gli passi come parametro oggetti di tipo triangolo non ha senso perchè una volta istanziato  un ogg di tipo triangolo,con il costruttore (2), esso contiene gia tutte le informazioni necessarie per calcolare area e perimetro ... quindi io farei cosi:
Codice sorgente - presumibilmente Java

  1. import java.io.*;
  2.  
  3. public class Triangolo{
  4.  
  5. int lato1, lato2, lato3;
  6. int area=0;
  7. int perimetro=0;
  8.  
  9. public void Triangolo(int a, int b, int c){
  10. lato1=a;
  11. lato2=b;
  12. lato3=c;
  13. }
  14.  
  15. public void Area(){
  16. area=lato1*lato2*lato3;
  17. System.out.println("l' area del triangolo è "+area);
  18. }
  19.  
  20. public void Perimetro(){
  21. perimetro=lato1+lato2+lato3;
  22. System.out.println("il perimetro del triangolo è "+perimetro);
  23. }
  24. }



innanzi tutto ti ringrazio per l' attenzione. dopodichè vorrei chiederti un chiarimento sul costruttore. io gli int a,b,c li acuisisco nel main, pertanto il cmpilatore quando compilo la classe non me li trova. è giusto acquisire da input a,b,c nel main e usarli nella classe,che è su un altro foglio? - tomsamy93 - 17/03/11 22:05
Non li trova per il concetto di incapsulamento ......Non posso dire se è giusto o sbagliato acquisire da input a,b,c nel main e usarli nella classe .... hai deciso di fare cosi e basta.. Ti consiglio di studiare un pò di teoria sul Java (Polimorfismo,incapsulamento e ereditarietà) - Bonny - 20/03/11 14:44
PM