Array double

6 respostas
J

Colegas,

alguém sabe qual o problema do meu código abaixo ?

public class retanguloCartesiano
{
    private double[] x = new double[4];

    public void setV1(double x, double y)
    {
        x[1] = ( (x > 0 && x < 20)? x : 1 );
        y[1] = ( (y > 0 && y < 20)? y : 1 );
    }
     ..........
}

porém ao compilar dá o seguinte erro:

retanguloCartesiano.java:9: array required, but double found
        x[1] = ( (x > 0 && x < 20)? x : 1 );
         ^
retanguloCartesiano.java:10: array required, but double found
        y[1] = ( (y > 0 && y < 20)? y : 1 );

minha intenção é guardar vários pontos (x,y) com valores double em dois arrays diferentes x[] e y[]

Obrigado,

6 Respostas

W

Eu acho que o problema esta aqui :

public void setV1(double x, double y)

vc esta recebendo double e nao array de double (double[] )

porque isso que ele da o erro : array required, but double found

//Daniel

D

tem o erro do windsofhell …

mas cade o array y???

luistiagos

vc passou x e y como doubles e não um array de doubles expremete fazer assim:

public void setV1(double x, double y)

{

x = ( (x > 0 && x < 20)? x : 1 );

y = ( (y > 0 && y < 20)? y : 1 );

}

ou se quiser array mesmo assim:

public void setV1(double []x, double []y)

{

x[1] = ( (x > 0 && x < 20)? x : 1 );

y[1] = ( (y > 0 && y < 20)? y : 1 );

}
Marky.Vasconcelos
ve se isso resolve
public class retanguloCartesiano
 {
     private double[] x = new double[4];
 
     public void setV1(double x, double y)
     {
         this.x[1] = ( (x > 0 && x < 20)? x : 1 );
         this.y[1] = ( (y > 0 && y < 20)? y : 1 );
     }
      ..........
 }
Marky.Vasconcelos

se você não colocar o this ali ele vai usar a variavel que você passou

porque x na classe é uma Array e no metodo um double
use o this. pra referenciar a array e não a variavel

R

Mark_Ameba:
se você não colocar o this ali ele vai usar a variavel que você passou

porque x na classe é uma Array e no metodo um double
use o this. pra referenciar a array e não a variavel

Acho que vc foi exatamente no ponto que ele deve ter se confundido… acho que quando ele fez referenciou a x[1] ele estava querendo fazer referencia justamente a this.x[1], mas como o nome do argumento tb é x, aih houve a confusão que o shadowing provoca.

Tb outro ponto que, pelo menos no código postado, está faltando. Se não estiver em algum canto entre as “…” que ele colocou, então tb tem que declarar o array na classe.

Criado 16 de julho de 2007
Ultima resposta 17 de jul. de 2007
Respostas 6
Participantes 6