Problemas em trabalho da Faculdade, alguém pode ajudar?

6 respostas
T

Oi gente, meu primeiro tópico, e já pedindo ajuda (espero poder ajudar tbm em breve). Sou bem iniciante mesmo em java e eu to com dúvidas em um trabalho da faculdade, uma das questões é a seguinte:

O código JAVA abaixo apresenta 8 erros. Mostre que erros são esses e explique porque está errado.

public final class TesteA

{

int a = 0;
TesteA (int arg)

{

a = arg;

}
final int obterA ( )

{

return a + a;

}

}

public class TesteB extends TesteA

{

int b = 0;
TesteB (int arg)

{

b = arg;

}
int obterA ( )

{

a = super.obterA( );

return a;

}
static int obterB ( )

{

int c;

c = b++;

return this.b + c;

}
int obterBA ( )

{

a = c++;

return (b  a);

}

}

public class TesteC

{

public static void main (String arguments[])

{

int valor;

TesteA x = new TesteA ( );

TesteB y = TesteB (x.obterA( ) - 1);

z = new TesteB(3);
valor = x.obterA( ) + y.obterA( ) + y.obterB( ) + y.obterBA( ) + TesteB.b;

x = y;

valor = valor + x.obterA( ) + y.obterA( ) + y.obterB( ) + y.obterBA( ) + TesteB.obterB( );

valor = = valor + x.obterA( ) + y.obterA( ) + y.obterB( ) + y.obterBA( );
System.out.println(valor);

}

}

São 8, mas taquei no eclipse e deu mais de 20 rsrsrs… Bom os que eu tirei dai foram os seguintes, pela ordem do código:

1 - não é possível que a classe Teste B faça generalização de TesteA porque ela é “final”

2 - “this” não pode ser usado em se tratando de um contexto estático

3 - Faltou um “new” para criar o objeto y

4 - x não pode receber y já que y não foi iniciado

Só achei 4 assim mais plausiveis, os outros eu tenho muitas incertezas, se eu for olhar pelo eclipse tem um monte, mas o professor disse que só tem 8…

Alguém pode me ajudar a achar os outros e me corrigir se eu estiver errado nesses que eu achei?

Desde já agradeço!!!

6 Respostas

B

uma dica importante:
se vc QUER aprender Java, não use Eclipse por enquanto, aprenda a programar sem uma “ajudinha” de qualquer programa. Caso vc queira apenas passar em Javana facul… faça o que está fazendo…

Bom, aqui vai alguns erros:

na classe TesteA tem um erro no return, no método TesteA, quando algum método não retorna nada vc deve colocar um “void” explicitamente.

na classe main, onde está “= =” está errado, pois vc está fazendo uma comparação num lugar qualquer.

T

Quanto ao eclipse, a própria facul indicou. Eu tive que me ausentar de algumas aulas por isso to meio perdido, mas muito obrigado, me ajudou muito!

L

seus métodos estáticos estão trabalhando com as variáveis que não são estáticas…

faz um tempinho que eu não mexo com isso, não me lembro bem, mas acho que é um problema… :???:

um abraço

P

em relação ao erro indicado pelo bbcbreno…

TesteA não é um método comum e sim um construtor da classe TesteA portanto, não precisa de void…

Vamos aos erros:

1 - TesteB não pode extender TesteA, pois TesteA é “final”, voce ja deve ter tido a teoria disso.
2 - o método obterA na classe TesteB, está errado, por consequencia do erro 1.
3 - no método obterB, a variável b não pode ser acessada pois não esta definida como estatica, mesmo erro ocorre na linha de retorno do método.
4 - método obterBA, está errado, pois a variável “a”, pertence a classe TesteA que não pode ser extendida, como foi explicado no erro 1.
5 - na classe TesteC esse código TesteA x = new TesteA(); está errado pois não existe o construtor vazio na classe TesteA.
6 - Faltou o “new” para criar o objeto y na classe TesteC
7 - A variável z não foi declarada antes de ser inicializada.
8 - na Classe TesteC, na linha valor = x.obterA( ) + y.obterA( ) + y.obterB( ) + y.obterBA( ) + TesteB.b; TesteB.b não pode ser acessado pois não esta definida como estatico.

isso deve resolver…na verdade tem até mais erros, inclusive o q vc apontou como número 4, mas um é consequencia do outro…ve com o pessoal da sua sala o q o pessoal identificou, e também tire suas dúvidas com o professor.

Mas como já foi dito, não é nada indicado para quem está começando, utilizar uma IDE como o Eclipse, o bom e velho bloco de notas, compilando e executando no prompt de comandos é o mais indicado…

Valeu

T

“pedrobusko”:
em relação ao erro indicado pelo bbcbreno…

TesteA não é um método comum e sim um construtor da classe TesteA portanto, não precisa de void…

Vamos aos erros:

1 - TesteB não pode extender TesteA, pois TesteA é “final”, voce ja deve ter tido a teoria disso.
2 - o método obterA na classe TesteB, está errado, por consequencia do erro 1.
3 - no método obterB, a variável b não pode ser acessada pois não esta definida como estatica, mesmo erro ocorre na linha de retorno do método.
4 - método obterBA, está errado, pois a variável “a”, pertence a classe TesteA que não pode ser extendida, como foi explicado no erro 1.
5 - na classe TesteC esse código TesteA x = new TesteA(); está errado pois não existe o construtor vazio na classe TesteA.
6 - Faltou o “new” para criar o objeto y na classe TesteC
7 - A variável z não foi declarada antes de ser inicializada.
8 - na Classe TesteC, na linha valor = x.obterA( ) + y.obterA( ) + y.obterB( ) + y.obterBA( ) + TesteB.b; TesteB.b não pode ser acessado pois não esta definida como estatico.

isso deve resolver…na verdade tem até mais erros, inclusive o q vc apontou como número 4, mas um é consequencia do outro…ve com o pessoal da sua sala o q o pessoal identificou, e também tire suas dúvidas com o professor.

Mas como já foi dito, não é nada indicado para quem está começando, utilizar uma IDE como o Eclipse, o bom e velho bloco de notas, compilando e executando no prompt de comandos é o mais indicado…

Valeu

Ei, obrigado pela ajuda de todos, mas sobre essa questão do IDE, o fato é que entendi o ponto de vista de vocês, e é por ai mesmo, senão não aprende direito, se acostuma com a facilidade, o eclipse faz muita coisa pela gente… Mas um dia eu faço um programa decente, eu trabalho mais com photoshop, acho que passei muito tempo usando mais o mouse que o teclado rsrsrsr… Eu chego la!!! Abraços!

D

Apontando 1 =
A classe A é final e vc está estendendo-a…NAO PODE!
Uma classe final não pode ser herdada…por exemplo.: Vc nao pode ter uma classe filha da String.

t+

Criado 22 de novembro de 2006
Ultima resposta 23 de nov. de 2006
Respostas 6
Participantes 5