Ajuda quando à erro.

1. Ajuda quando à erro.

wanderley silva
wandecolee

(usa Fedora)

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á?


  


2. Re: Ajuda quando à erro.

Raimundo Alves Portela
rai3mb

(usa Outra)

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

wanderley silva
wandecolee

(usa Fedora)

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts