Pular para o conteúdo

Ajuda quando à erro.

Responder tópico
  • Denunciar
  • Indicar

1. Ajuda quando à erro.

Enviado em 05/04/2015 - 12:40h

Oi à todos.
Tenho o seguinte código:
public class PrimitiveParameters2
{
public int x=3;
public int y=4;

public PrimitiveParameters2(){
x=5;
y=6;
}
public static void main(String[] args)
{
go();
}

public static void go()
{
System.out.println("x=" + x + " y= " +y);
}
}

Está produzindo os seguinte erros:
PrimitiveParam.java:20: non-static variable x cannot be referenced from a static
context
System.out.println("x=" + x + " y= " +y);
^
PrimitiveParam.java:20: non-static variable y cannot be referenced from a static
context
System.out.println("x=" + x + " y= " +y);
^
2 errors

Já tentei colocar a variável como private tambem não funciona, o que será?

Responder tópico

2. Re: Ajuda quando à erro.

Enviado em 05/04/2015 - 12:46h


os métodos estáticos (static) não podem referenciar elementros criados fora deles, neste caso vc está usando um elemento externo ao método static, no caso a variável x.

Para funcionar ou vc deve criar as variáveis dentro do método, ou transformar o método em public...

3. Tópico: Ajuda quanto à erro. Resolução por objetos

Enviado em 06/04/2015 - 15:18h


Retirando static dos métodos tanto o main quanto o go() o programa não funcionava(funciona), o jeito foi criar um objeto do tipo PrimitiveParam:
public class PrimitiveParam
{
private int x=3;
private int y=4;

public PrimitiveParam(){
x=5;
y=6;
}

public static void main(String[] args)
{
PrimitiveParam p = new PrimitiveParam();
go(p);
System.out.println("x=" + p.x + " y= " + p.y + " in main");
p.x=6;
go(p);
}

public static void go(PrimitiveParam z)
{
System.out.println("x=" + z.x + " y= " + z.y + " in go");
}
}

Obrigado ao amigo pela ajuda.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder