Urgente!, problemas com herança e packages

e ae , sou novo no forum, apesar de sapear aki ja há um bom tempo

to com um problemão, um trabalho da facul simulando uma corrida entre uma tartaruga e uma lebre usando matriz e herança de classes, fiz uma classe main, uma classe corredor uma classe lebre e uma tartaruga, a classe corredor compilou blza, já as outras não compila

[quote]classe corredor
package jogos.corrida;

public abstract class Corredor {
public abstract void run();
public abstract int getPosicao();
public abstract String getState();
public abstract String getNome();
public String toString() {
String ret = getNome();
ret += “[”;
ret += getPosicao();
ret += “,”;
ret += getState();
ret += “]”;

	return ret;
}

}[/quote]

as outras classes não estão acessando essa, na hora de compilar da este erro: [quote]cannot resolve symbol
public class Lebre extends Corredor {
sumbol: class Corredor
location: class jogos.corrida.Lebre[/quote]

Se alguem souber e puder dar uma força, tenho que entregar essa zica amnhã quarta feira

vlw

eae blz?

cara pergunta bem boba

essas classes ficam no mesmo pacote que essa sua classe abstrata?

caso não fique, vc está indicando o import do pacote onde está essa classe abstrata? ( import jogos.corrida.*; ) :roll:

caso as opções de cima estejam certas, ele consegue implementar
os métodos que vc definiu na sua classe abstrata? :???:

ps.: muito estranho isso… 8O

[]´s

sua classe jogos.corrida.Corredor não esta no classpath qnd vai compilar a classe Lebre, esse tipo de erro é difícil de ocorrer qnd vc esta usando uma IDE q ja gerencia isso mais facilmente pra vc, ou, se tiver fazendo td em console, compile com

javac -classpath "caminho/onde/esta/a/classe/Corredor" -d . Lebre.java

vlws kras, deixa eu complementar minha dúvida

-eu to usando o Gel, já configurado as SDKs
-as classes estão todas em jogos/corrida, como tem que ser por estar usando como package, ou não???

  • aqui segue todas as classes e métodos

[quote]//classe Corrida.java(super classe)

package jogos.corrida;

import java.awt.;
import javax.swing.
;

public class Corrida {
private JTextField Tartaruga = new JTextField();
private JTextField Lebre = new JTextField();

public Corrida() {
	JFrame frame = new JFrame("Corrida");

	GridLayout grid = new GridLayout(4,2);
	JPanel panel = new JPanel();
	panel.setLayout(grid);
	panel.add(new JLabel("Apaga-se a luz vermelha..."));
	panel.add(new JLabel());

	panel.add(new JLabel("Começa o Grande Prêmio do meio do mato!"));
	panel.add(new JLabel());

	panel.add(new JLabel("Tartaruga"));
	panel.add(Tartaruga);

	panel.add(new JLabel("Lebre"));
	panel.add(Lebre);

	Tartaruga.setPreferredSize(new Dimension(400, 20));
	Lebre.setPreferredSize(new Dimension(400, 20));

	Dimension ssize = Toolkit.getDefaultToolkit().getScreenSize();
	frame.getContentPane().add(panel, BorderLayout.CENTER);
	frame.setSize((int) ssize.getWidth(), 150);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setVisible(true);
}

public void run() throws InterruptedException {
	Lebre lebre = new Lebre();
	Tartaruga tartaruga = new Tartaruga();

	while (true) {
		tartaruga.run();
		lebre.run();

		if (terminou(tartaruga)) {
			Tartaruga.setText("Tartaruga ganhou!");
			break;
		} else {
			Tartaruga.setText(print(tartaruga));
		}

		if (terminou(lebre)) {
			Tartaruga.setText("Lebre ganhou!");
			break;
		} else {
			Lebre.setText(print(lebre));
		}
		Thread.sleep(1000);
	}
}

public boolean terminou(Corredor (corredor)) {
	return corredor.getPosicao() >= 70;
}

public static void main(String[] args) throws Exception {
	Corrida corrida = new Corrida();
	corrida.run();
}

public static String print(Corredor corredor) {
	String ret = "";
	for (int i = 0; i < corredor.getPosicao() - 1; i++) {
		ret += ' ';
	}
	ret += corredor;
	return ret;
}

}[/quote]

[quote]classe Corredor.java(a única que ta compilando certinho

package jogos.corrida;

public abstract class Corredor {
public abstract void run();
public abstract int getPosicao();
public abstract String getState();
public abstract String getNome();
public String toString() {
String ret = getNome();
ret += “[”;
ret += getPosicao();
ret += “,”;
ret += getState();
ret += “]”;

	return ret;
}

}[/quote]

[quote]classe Lebre.java
package jogos.corrida;

public class Lebre extends Corredor {
private int posicao = 1;
private String state;

public void run() {
	int num = (int) (Math.random() * 9) + 1;
	if (num <= 2) {
		state = "zzZZzz";
	}

	if (num > 2 && num <= 4) {
		state = "Salto grande";
		posicao += 9;
	}
	if (num > 4 && num <= 5) {
		state = "Escorregão grande";
		posicao -= 12;
	}
	if (num > 5 && num <= 8) {
		state = "Salto pequeno";
		posicao += 1;
	}
	if (num > 8) {
		state = "Escorregão pequeno";
		posicao -= 2;
	}
}

public int getPosicao() {
	if (posicao < 0) {
		posicao = 1;
	}
	return posicao;
}

public String getState() {
	return state;
}

public String getNome() {
	return "Lebre";
}

}[/quote]

[quote]classe Tartaruga.java

package jogos.corrida;

public class Tartaruga extends Corredor {
private int posicao = 1;
private String state = “”;

public void run() {
	int num = (int) (Math.random() * 9) + 1;
	if (num <= 5) {
		state = "Salto grande";
		posicao += 3;
	}
	if (num > 5 && num <= 7 ) {
		state = "Caminhada lenta";
		posicao += 1;
	}
	if (num > 7) {
		state = "Escorregão";
		posicao -= 6;
	}
}

public int getPosicao() {
	if (posicao < 0) {
		posicao = 1;
	}
	return posicao;
}

public String getState() {
	return state;
}

public String getNome() {
	return "Tartaruga";
}

}[/quote]

as classes tartaruga e lebre tem que acessar a classe corredor que acessa a classe corrida.
caso não encontre essa solução teria uma forma mais fácil de fazer esse código em console, tipo usando uma classe só e métodos?