Pequena dúvida em um exercício

3 respostas
J

Olá pessoal, primeiramente um bom natal pra todos, e um 2007 de muitas realizações!!!

Bom, estou dando uma estudada pros concuros que vêm por aí, e estou com a prova da Petrobras 2005. Estou confundindo os conceitos de duas linhas desse código aqui:

public class mcP { int a = 0; mcP () { } mcP (int arg) { a = arg; } int getA () { return a + a; } } public class mcS extends mcP { int b = 0; mcS (int arg) { b = arg; } int getA () { a = super.getA(); return a; } int getB () { return b + b; } int getBA () { a = b; return b - a; } } public class mc { public static void main (String arguments[]) { int valor; mcP x = new mcP (2); mcS y = new mcS (x.getA() - 1); valor = x.getA() + y.getA() + y.getB() + y.getBA(); x = y; valor = valor + x.getA() + y.getA() + y.getB() + y.getBA(); y = (mcS)x; valor = valor + x.getA() + y.getA() + y.getB() + y.getBA(); System.out.println(valor); } }Minhas dúvidas estão na linha [color=blue]x = y;[/color] e [color=blue]y = (mcS)x;[/color], ambas no final do código.

É só isso, coisa simples! Agradeço desde já pela força… :lol:

3 Respostas

m4des

x = y, esta atribuindo o valor de mcS a mcP;
y = (mcS)x, esta fazendo um cast do valor de x para y;

Boa Sorte.

J

Olá m4des, com base na sua resposta eu pude pesquisar mais e entendi o que vem a ser upcast ( x = y; ) e downcast ( y = (mcS)x; ).

Com base nisso eu consegui fazer a questão, pelo menos o resultado bateu com o gabarito ( valor = 58 ). Mas por desencargo de consciência, alguém poderia dar uma conferida pra mim pra não dizer que foi pura sorte?!

valor = 4 + 0 + 6 + 0; // = 10 x = y; valor = 10 + 6 + 12 + 6 + 0; // = 34 y = (mcS)x; valor = 34 + 6 + 12 + 6 + 0; // = 58De qualquer forma essa questão que eu passei está muito mal escrita, não é mesmo?

Obrigado pela força e pela antenção… feliz natal!!!

T

Isso se chama “pegadinha”. Em vez de pedirem um conhecimento superficial sobre um monte de tópicos (que é o que você precisa na vida real), pedem um conhecimento profundo sobre apenas alguns tópicos (coisa de professor).

Criado 22 de dezembro de 2006
Ultima resposta 26 de dez. de 2006
Respostas 3
Participantes 3