Classe DVD ( Só é possível dar play no DVD se existir algum filme inserido). Galera, eu acho que não estou fazendo esse método direito, pois mesmo sem nenhum filme inserido, eu consigo dar PLAY

package Model;

public class DVD {

private boolean dvdLigado;
private int volume;
private String filme;
private boolean playLigado;
private boolean stopLigado;


public DVD() {
	super();
}

public DVD(boolean dvdLigado, int volume, String filme, boolean playLigado, boolean stopLigado) {
	super();
	this.dvdLigado = dvdLigado;
	this.volume = volume;
	this.filme = filme;
	this.playLigado = playLigado;
	this.stopLigado = stopLigado;
}

// primeiro método público 

public String situacaoDVD () {
	if (this.dvdLigado) { 
		return  " DVD Ligado!";
	}else {
		return " DVD Desligado!";
			
	}		
}

//segundo método público  
	public String ligarDVD() {
		if (this.dvdLigado) {
			return " O DVD já estava ligado!";
		}else {
			this.dvdLigado = true; // Estou ligando o DVD
			return " O DVD foi ligado agora!";			
		}	
	}	
	
	// terceiro método público
	public String desligarDVD() {
		if (!this.dvdLigado) {
			return " A TV já estava desligada.";
		}else {
			this.dvdLigado = false; // Estou ligando a tv 
			return " O DVD foi desligado agora";	
		}
	}
	
   // quarto método público 
	public void aumentarDVD() {
		if (!this.dvdLigado) {
		System.out.println ("ATENÇÃO! Não é possível aumentar a TV, pois a  TV desligada");	
		} else {
	    if (volume >= 0 && volume <= 5) {
	    System.out.println ("O volume atual é:" + this.volume);
	
	}
	}
}
	// quinto método público
	  public String inserirFilme () {
		  if (!this.dvdLigado) {
	 return "É impossível inserir um título cinematográfico com DVD desligado";	
		  } else {
			  return "O filme é:" + this.filme;
		  } 
	  }	
	// sexto método público
	  public String situacaoPlay () {
			if (this.playLigado) { 
				return  "PLAY Ligado!" +this.filme ;
			}else {
				return "PLAY Desligado!";
	}
	  }
   // quinto método público
	  
	  public String situacaoStop () {
		  if (!this.playLigado) { 
	    return "É impossível dar stop um título cinematográfico com DVD desligado";	
		  }else {
			  return "O Filme está em STOP:" +this.filme;
		  }
	  }
				  
public boolean isDvdLigado() {
	return dvdLigado;
}

public void setDvdLigado(boolean dvdLigado) {
	this.dvdLigado = dvdLigado;
}

public int getVolume() {
	return volume;
}

public void setVolume(int volume) {
	this.volume = volume;
}

public String getFilme() {
	return filme;
}

public void setFilme(String filme) {
	this.filme = filme;
}

public boolean isPlayLigado() {
	return playLigado;
}

public void setPlayLigado(boolean playLigado) {
	this.playLigado = playLigado;
}

public boolean isStopLigado() {
	return stopLigado;
}

public void setStopLigado(boolean stopLigado) {
	this.stopLigado = stopLigado;
}

}

Eu acho que no método setPlayLigado vc deveria colocar uma condição, algo como:

public void setPlayLigado(boolean playLigado) {
  if (this.filme) {
    this.playLigado = playLigado;
  } else {
    this.playLigado = false;
  }
}

Mas eu acho que ainda está estranho em 2 pontos:

  1. Como a classe DVD não extende nenhuma outra classe, não é necessário chamar o super().

  2. Vc deveria ter um atributo chamado estado que poderia ser “Playing” ou “Stopped”.

Então, vc teria 2 métodos:

void darPlay() {
  if (this.filme) {
    this.estado = "Playing";
  }
}

void darStop() {
  this.estado = "Stopped";
}

Este atributo estado poderia ser mais complexo, por exemplo, vc poderia ter o estado “Pausado” também.

Observação:

Se você não está utilizando herança, não precisa chamar o construtor da classe superior (super();). O Java, por default, faz isso.

Hi, não deu certo.

Ah sim, é que a ideia era vc adaptar pra sua necessidade, eu quis apenas dar uma luz do que poderia ser feito. Acredito que seja no setPlayLigado mesmo que alguma coisa deve ser testada.

Mas manda o código do seu main pra eu olhar melhor?

Eu fiz um exemplo de como eu imagino a situação aqui.

Eu vou ter que refazer :rose: