publicclassNumero{privatestaticintnum;publicNumero(intnum){this.num=num;}publicvoidsetNum(intnum){this.num=num;}publicintgetNum(){returnnum;// não é necessário o this}publicstaticvoidmain(String[]args){Numerotemp=newNumero(num);inta;a=temp;//int a=this.num; //ver!!Numeron=newNumero(a);// cria um nome Numero com valor 10System.out.println(n.getNum());// imprime o valor de n (10)n.setNum(a);// seta o valor de num para 20System.out.println(n.getNum());// imprime o valor de n (20)}}
A ideia do codigo era aparecer os resultados novos que o utilizador insere ao invocar a main. Mas dá erro de incompatibilidade na linha a=temp;
Alguem tem alguma sugestao?
Yep, assim já compila, mas a main dá sempre resultado 0 0! e devia mostrar os valores introduzidos pelo utilizador.
humm…
alguem sabe onde anda o erro?
peczenyj
public static void main(String[] args)
{
Numero temp= new Numero(num); // 1
int a;
a=temp.getNum(); //2
Numero n = new Numero(a); // 3
System.out.println(n.getNum()); // 4
n.setNum(a); // 5
System.out.println(n.getNum()); // 6
}
Veja só
cria um objeto temp atraves do construtor Numero (int blablabla) com o argumento num. Qual sera o valor do argumento num? coloca um println lá pra vc ver… verá que é 0
variavel a recebe o valor que vc definiu, ou seja, 0
cria um objeto n da mesma forma que em (1)
imprime o valor definido, ou seja, 0
altera o valor do atributo num do objeto n com o valor da variavel a, ou seja, 0
imprime o valor definido, ou seja, 0 de novo
O que mais vc esperava?
P
paulovr
public static void main(String[] args)
{
Numero temp= new Numero(num);
int a=temp.getNum();
System.out.println(a);
}
Agora está mais melhorado e pequeno!
A primeira linha diz que tou a criar uma instancia que ficará no valor temp de tipo Numero , certo? o parametro q esta no new Numero(num) é o valor que o utilizador introduz né?
A segunda linha diz q a tera o valor guardado do num.
A terceira linha imprime o valor introduzido pelo utilizador!
Que corre mal?
:shock:
M
macfly2500
Onde vc está passando o valor “introduzido pelo utilizador”?
Se fizer assim vai imprimir 15, mas se não passar o valor digitado pelo usuário vai imprimir 0
P
paulovr
yep, ja vi a confusao. :?
a intenção é a main imprimir os numeros introduzidos pelo utilizador.
peczenyj
veja só
vc tem um atributo estático inteiro chamado num – atributos estáticos que não são inicializados explicitamente são inicializados com algum valor padrão, no caso de inteiros, 0.
vc tem um construtor de uma classe que recebe como parametro um numero inteiro e altera uma variavel estática. ou seja, cada vez que vc chamar uma instância da sua classe num tera seu valor alterado.
vc chama o construtor da classe com o atributo num, que é 0. vc atribui 0 ao 0 umas 3 vezes