Código que não compila... [Resolvido]

4 respostas
java_aly

Olá pessoal…
Antes que me pagarem um sapo por talvez ter
feito a pergunta em um lugar errado, ja pesso desculpas!!

A parada é a seguinte:
Sou novo em JAVA e estou aprendendo por conta propria!!
Estava lendo sobre polimorfismo e estou tentando compilar
esse código no eclipse e ele acusa erro.

Se alguem puder me ajudar a entender o porque desse
erro que o eclipse gera:

package Testes;

public class bomCachorro {

	private int tamanho;
	
	public int getTamanho(){
		return tamanho;
	}
	
	public void setTamnho (int t) {
		tamanho = t;
	}
	void latir (){
		if (tamanho > 0){
			System.out.println ("Woof! Woof!");
		}
		else if (tamanho > 14) {
			System.out.println ("Ruff!! Ruff!");
		}
		else {
			System.out.println ("Yip!! Yip!!!");
		}
	}
}

class bomCachorroTest {
	public static void main (String [] args) {
		bomCachorro pastor = new bomCachorro();
		pastor.setTamanho(70);
		bomCachorro podlle = new bomCachorro();
		podlle.setTamanho(8);
		System.out.println ("Cachoro pastor: " + pastor.getTamanho());
		System.out.println ("Cachorro podlle: " + podlle.getTamanho());
	}
}

Erro:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	The method setTamanho(int) is undefined for the type bomCachorro
	The method setTamanho(int) is undefined for the type bomCachorro

	at Testes.bomCachorroTest.main(bomCachorro.java:30)

4 Respostas

Tiago.Argolo

Erro de digitação. Na classe bomCachorro você colocou o nome do método como set[size=18]Tamnho [/size] . Já na classe principal você chamou o método setTam[size=18]a[/size]nho . Cuidado com erros de digitação e com Case Sensitive em Java!

Geralmente a IDE em que você está desenvolvendo mostra qual o erro e como resolvê-lo.

Até mais!

java_aly

Cara!!
Valeu…

Dei mole mesmo… mas é assim que se aprende!!

Grande abraço hermano!

Tiago.Argolo

Favor editar o nome do tópico colocando o prefixo [Resolvido] após, de fato, resolver sua dúvida.

WellingtonRamos

O método main deve ser declarado na classe de mesmo nome do arquivo. No caso, dentro de bomCachorroTest.

Outra coisa, não vi polimorfismo no seu teste.

Polimorfismo seria algo assim:

public class TestePolimorfismo {
	
	public static void main(String[] args) {
		BomCachorro poodle = new Poodle();
		BomCachorro pastor = new Pastor();
		
		poodle.latir();
		pastor.latir();
	}

}

class Pastor implements BomCachorro{

	@Override
	public void latir() {
		System.out.println("Ruff!! Ruff!");
		
	}
	
}

class Poodle implements BomCachorro {

	@Override
	public void latir() {
		System.out.println("Yip!! Yip!!!");
		
	}
	
}

interface BomCachorro{
    void latir ();
}

Outro problema, vc fez chamadas a métodos que retornam valor vazio (void) dentro de um Sytem.out.println()
e alguns outros problemas de sintaxe.

Criado 26 de abril de 2010
Ultima resposta 26 de abr. de 2010
Respostas 4
Participantes 3