Pages: [1]   Go Down
Print
Author Topic: Esercizio uml  (Read 817 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« on: 28-01-2009, 23:33:42 »

Salve a tutti ho provato a fare l'esercizio uml ma ho un problema con il main, secondo me il codice è giusto corregetelo e ditemi gli errori eccolo:

Code:
import classi.*;
import java.util.Random;
public class Main
{
public static void main(String [] args)
{
Random r = new Random (6353433);
A [] vett = new A [100];
for (int i=0; i<vett.length; i++) {
int   x = r.nextInt(10);
int   y = r.nextInt(100);
int   z = r.nextInt(30);
                     if (r.nextInt(2)==1)   vett[i] = new B(x, y, z);
    else    vett[i] = new C(x, y, z);}
//PRIMO QUESITO
int somma=0;
for (int i=0;i<vett.length;i++)
{
somma+=A[i].f();
}
//TERZO QUESITO
int cnt=0;
for(int y=0;y<vett.length;y++)
     if (vett[y] instanceof C) cnt++;
//SECONDO QUESITO
  int somma1=0;
   for(int y=0;y<vett.length;y++)
        if(vett[y].getclass().equals(B.class))
{
somma1+=vett[y].f(r.nextInt(47));
}
}
}
Logged
Blonic
Forumista
***
Offline Offline

Gender: Male
Posts: 868



WWW
« Reply #1 on: 29-01-2009, 18:50:52 »

Il problema è qui probabilmente:
Code:
somma1+=vett[y].f(r.nextInt(47));

Devi fare il casting a B, NON MI CHIEDERE PERCHE'!!!!  (Non lo so neanch'io  [Emoticon] Asd)

La stringa diventerebbe così:
Code:
somma1+=(B)(vett[y].f(r.nextInt(47)));

Cmq ne stiamo parlando anche su un'altro thread, controlla
Logged
Pages: [1]   Go Up
Print
Jump to: