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,
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
tem o erro do windsofhell …
mas cade o array y???
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 );
}
ve se isso resolve
[code]
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 );
}
..........
}[/code]
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
[quote=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[/quote]
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.