Pages: [1] 2   Go Down
Print
Author Topic: Errore compilatore  (Read 2925 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Jack&Daxter
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 398



« on: 23-02-2011, 12:34:21 »

Ragazzi mi dite per favore qual'è l'errore in questo codice? Perchè mi sono bloccato..GRAZIE

Code:
public class main
{
public static void main (String [] args)
{
Vettore A = new Vettore();
int x=5;

A.Inserisci();

A.stampa();

System.out.println(A.ricerca(x));

}
}


import javax.swing.*;

class Vettore
{
private int [] A = new int [5];
private int i=0,j=0;

public void Inserisci()
{
     for(i=0;i<A.length;i++)
A[i]=Integer.parseInt(JOptionPane.showInputDialog("Inserisci l'elemento "+i));
}

public void stampa()
{
for(i=0;i<A.length;i++)
System.out.println(A[i]+"  ");
}

public int ricerca (int x)
{
for(i=0;i<A.length;i++)
if(A[i].length==x)
return x;
else
        return 0;
}

}

L'errore è  int cannot be dereferenced if(A.length==x) , ma non capisce che vuoldire 
Logged
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #1 on: 23-02-2011, 12:42:52 »

Quote
Code:
public int ricerca (int x)
{
for(i=0;i<A.length;i++)
if(A[i].length==x)
return x;
else
        return 0;
}

}


perche length? non sono int? mica int hanno lunghezza! .. togli length
Logged

Aliens Exist
Jack&Daxter
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 398



« Reply #2 on: 23-02-2011, 12:55:40 »

Che cretinooooo verooo!!! GRAZIE
Logged
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #3 on: 23-02-2011, 12:57:13 »

hahaha  ciao
Logged

Aliens Exist
Jack&Daxter
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 398



« Reply #4 on: 23-02-2011, 13:11:24 »

Scusami posso dirti un'altra cosa? è da poco che programmo ad oggetti quindi ancora non sono molto pratico e ti volevo dire se era necessario mettere il costruttore nel precedente codice che ho scritto io  . Se è si cosa dovrei scrivere ...GRAZIE
Logged
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #5 on: 23-02-2011, 13:38:27 »

mmm di solito il costruttore si implementa quando è necessario inizializzare variabili di istanza al momento della crazione dell'oggetto... nel tuo caso potevi mettere il contenuto del metodo inserisci() nel costruttore.. per evitare di scrivere ulteriori metodi... però in realtà è in base alle tue esigenze
Logged

Aliens Exist
Jack&Daxter
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 398



« Reply #6 on: 23-02-2011, 13:42:29 »

Ok grazie tutto kiaro 
Logged
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #7 on: 23-02-2011, 13:43:52 »

prego! Cheesy
Logged

Aliens Exist
Jack&Daxter
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 398



« Reply #8 on: 23-02-2011, 13:57:24 »

Ragazzi sapreste dirmi che errore faccio?

Code:

import javax.swing.*;

public class main
{
public static void main (String [] args)
{
int a=Integer.parseInt(JOptionPane.showInputDialog("Inserisci il numero di righe"));
int b=Integer.parseInt(JOptionPane.showInputDialog("Inserisci il numero di colonne"));

Matrice C = new Matrice(a,b);

C.Stampa();
}
}

import javax.swing.*;

class Matrice
{
private int i=0,j=0;

public int Matrice(int a,int b)
{
int [][] A = new int [a][b];

for(i=0;i<A.length;i++)
for(j=0;j<A[i].length;j++)
A[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Inserisci l'elemento "+i+" "+j));

return A;

}

public void Stampa(int [][] A)
{
for(i=0;i<A.length;i++){
for(j=0;j<A[i].length;j++){
System.out.print(A[i][j]+"  ");
}
System.out.println();
}
}


}

Logged
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #9 on: 23-02-2011, 14:35:15 »

il costruttore non ritorna nulla
Logged

Aliens Exist
FReddy
Apprendista Forumista
**
Offline Offline

Posts: 367



« Reply #10 on: 23-02-2011, 14:39:17 »

Non solo quello:

-"import javax.swing.*;" l'importazione falla una volta;

-il metodo stampa prende in input un parametro mentro tu lo chiami senza fornirgli alcun parametro.

Logged

Il presente è ora,
Il passato era ora,
Il futuro sarà ora.
Jack&Daxter
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 398



« Reply #11 on: 23-02-2011, 14:49:23 »

1.L'importazione di javax swing la faccio due volte perchè main e classe sono messi in 2 file differenti...
2.Il costruttore dovrebbe ritornare una matrice perchè ho messo return A
3.E per quanto riguarda il metodo stampa dovrebbe (nel main) prendere in input A?
Logged
FReddy
Apprendista Forumista
**
Offline Offline

Posts: 367



« Reply #12 on: 23-02-2011, 15:01:23 »

Allora credo, e non la prendere come una critica  , che dovresti ripassare un po' di teoria perché i costruttori non possono restituire niente, la loro intestazione è del tipo: public NomeClasse(parametri) senza nessun valore di ritorno.

Quote
3.E per quanto riguarda il metodo stampa dovrebbe (nel main) prendere in input A?

Ora non voglio fare il saccente, ma come l'hai costruita, la classe matrice è concettualmente sbagliata, oltre che per i motivi precedenti, anche perché la matrice A dovrebbe essere dichiarata fuori dal costruttore. Infatti il metodo stampa non dovrebbe (almeno in questo caso) avere parametri in quanto dovrebbe accedere direttamente alla matrice A (che come ho detto prima dovrebbe essere variabile globale).

Sono riuscito a rendere l'idea?  
« Last Edit: 23-02-2011, 15:03:11 by FReddy » Logged

Il presente è ora,
Il passato era ora,
Il futuro sarà ora.
Jack&Daxter
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 398



« Reply #13 on: 23-02-2011, 15:11:20 »

No figuarati  anzi più consigli intasco meglio è ...

non so se cosi adesso va meglio:

Code:

import javax.swing.*;

public class main
{
public static void main (String [] args)
{
Matrice C = new Matrice();

C.Stampa();

}
}

import javax.swing.*;

class Matrice
{
private int a=Integer.parseInt(JOptionPane.showInputDialog("Inserisci il numero di righe"));
private int b=Integer.parseInt(JOptionPane.showInputDialog("Inserisci il numero di colonne"));
private int [][] A = new int [a][b];
private int i=0,j=0,k=0;

public Matrice()
{
for(i=0;i<A.length;i++)
for(j=0;j<A[i].length;j++)
A[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Inserisci l'elemento "+i+" "+j));


}

public void Stampa()
{
for(i=0;i<A.length;i++){
for(j=0;j<A[i].length;j++){
System.out.print(A[i][j]+"  ");
}
System.out.println();
}
}
}
Logged
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #14 on: 23-02-2011, 15:18:16 »

freddy vuoi copiare il metodo +media() ? hahaha
Logged

Aliens Exist
Pages: [1] 2   Go Up
Print
Jump to: