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

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!!!

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.

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!

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

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

[quote=“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[/quote]

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!

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+