Sistema de locadora(Problema com o código)

9 respostas
S

Boa noite a todos, tenho um exercício para resolver com o seguinte erredo:

Suponha que você está fazendo um sistema para gerenciar uma locadora de vídeo
que aluga e vende DVDs. Inicialmente você identificou as duas classes exibidas
abaixo. No entanto, você nota que as duas classes são muito semelhantes e gostaria
de não ter de repetir esforços na sua criação e uso. Implemente uma solução na qual
esta repetição seja retirada.

class DVDdeVender {

private float preço;

public void vender();

public void devolver();

public void recibo();

}
class DVDdeAlugar {

private float preço;

private Date dataDevolução;

public void alugar();

public void devolver();

public void recibo();

}

Consegui desenvolver o código até aqui, mas o programa não copila:

class DVD

{

private float preço;

public void devolver();

public void recibo();

}
class DVDdeVender extends DVD

{

public void vender();

}
class DVDdeAlugar extends DVD

{

private Date dataDevolução;

public void alugar();

}

9 Respostas

Duende_Macabro

Olá, não consegui ver nada de errado, talvez estejam em pacotes diferentes, tente postar o erro. Só uma coisa, devolver() deveria pertencer só a classe DVDdeAlugar já que normalmente não se devolve uma coisa comprada.
:slight_smile:

peczenyj

qual a diferença entre:

public static int fibonacci(int n)
	{
		return (n < 2) ? n : fibonacci(n-1) + fibonacci(n-2);
	}

e

public static int fibonacci(int n);

qual método vc acha que compila, um que possui algum código ou um que não tem?

quando falamos de classes os metodos tem que ter algum tipo de bloco de instruções associado, senão vc vai ter um erro em tempo de compilação: missing method body, or declare abstract

Este seria um método que não faz nada:
public void pirapirou(){}

perceba que, se o método não for void, vc precisa ter uma intrução return e retornar alguma coisa de acordo com o tipo de retorno do método.

Como o seu exercicio é mais para desenvolver ideias do que para compilar código, a unica forma de compilar alguma coisa seria assim

class DVD
{
	private float preço;
	public void devolver(){}
	public void recibo(){}
}

class DVDdeVender extends DVD
{
	public void vender(){}
}

class DVDdeAlugar extends DVD
{
	private java.util.Date dataDevolução;
	public void alugar(){}
}

entretanto não tens como executar - só server para demonstrar o seu raciocínio.

S

Gostaria de compilar o programa , o erro que aparecia era exatamente pela falta do main, onde posso inserir o main()?

S

O erro que aparece é exatamente esse (the active editor does not contain a main type)

peczenyj

não, o erro que vc está tento é ao tentar executar e não para compilar. Eu consegui compilar estas classes!

Vc não precisa de um metodo main para compilar (a menos que esteja implementando uma interface mucho loca). Pense nisso.

S

Desculpa a minha inguinorancia no assunto sou iniciante a iniciante em java, mas como tiro o erro que aparece na classe DVDdeAlugar, logo na primeira linha do código, dvd aparece sublinhado em vermelho.

class DVDdeAlugar extends dvd

akumaldo

Samilu:
Desculpa a minha inguinorancia no assunto sou iniciante a iniciante em java, mas como tiro o erro que aparece na classe DVDdeAlugar, logo na primeira linha do código, dvd aparece sublinhado em vermelho.

class DVDdeAlugar extends dvd

Veja bem se você está escrevendo corretamente, pois se estiver escrevendo: class DVDdeAlugar extends dvd, está errado pois a classe que você criou foi DVD e não dvd, a classe dvd(minusculo) não existe!, lembresse que java é case sensitive, ou seja…existe diferenciação de maiusculas e minusculas…
sou novato também…espero ajudar…

:wink:

S

ae galera vc’s pode me ajuda onde eu puxo script de locado online ou pelo menos um q eu tenho controle do esto se ta alugado ou naum muito obrigado

maior_abandonado

xei legal o exemplo do peczenyj

class DVD   
{   
    private float preço;   
    public void devolver(){}   
    public void recibo(){}   
}   
  
class DVDdeVender extends DVD   
{   
    public void vender(){}   
}   
  
class DVDdeAlugar extends DVD   
{   
    private java.util.Date dataDevolução;   
    public void alugar(){}   
}

a unica coisa que eu descordo é do metodo devolver estar em DVD (pq assim DVDdeVender tem um metodo de devolver, ja foi dito ali em cima o erro sobre isso).

eu nao intendi direito essa ultima pergunta (ou ao menos nao tenho sei se intendi).

se vc quer ter algum controle sobre o que que ta alugado e o q q não, vc pode cria um array(vetor) de boolen pra cada dvd pra dizer se cada dvd ta alugado ou não.

exemplo:

boolean senhor_dos_aneis[]=new boolean[x]; //onde x é a quantidade de dvd desse filme q vc tem…

ai quando alufarem é só vc da um false la e não dexa aluga dvd que ja esteja em false.

uma solução que ocupa menos memoria, e vai te enche um pokinhu mais o saco (mais é poca coisa) é vc cria um inteiro pra cada filme no mesmo eskema, e no inteiro vc diz quantos tem disponivel dakele filme…

cria usano ArrayList pra ter mais flexibilidade pra mexe com ele depois … inserir novo dvd…etc…

feito isso vc pode grvar no hd informação …com a classe file, sei la, grava num txt…

Criado 11 de junho de 2006
Ultima resposta 21 de set. de 2007
Respostas 9
Participantes 6