Exercicio de classe muita duvidas

12 respostas
jessica_cachichi
oi gente desculpa ficar pertubando vcs mais precisava de uma ajudinha basica

eu to fazendo um exercicio, esse daq.

Crie uma classe Televisor. Essa classe deve possuir três atributos:

 canal (inicia em 1 e vai até 16)

 volume (inicia em 0 e vai até 10)

 ligado (inicia em desligado ou false)

e a seguinte lista de métodos:

? aumentarVolume()

? reduzirVolume()

? subirCanal()

? descerCanal()

? ligarTelevisor()

? desligarTelevisor()

? mostraStatus() // dizer qual o canal, o volume e se o televisor está ligado

Feito isto, crie uma classe principal que utilize um novo Objeto do tipo Televisor

e que deve realizar as seguintes operações:

 Ligue o televisor;

 Suba 5 canais;

 Aumente o volume até o máximo;

 Mostre o Status;

 Desça até o primeiro canal;

 Reduza 2 pontos no volume;

 Mostre o Status;

certo fiz uma classe chamada televisor seria essa.

package tv;

public class Televisor {
    public int canal=1;
    public int volume=0;
    public boolean ligado;
    
    public void aumentaVolume(){
        if(ligado)
            if(volume < 10)
                volume =+ 1;
    }
    
    public void reduzirVolume(){
        if(ligado)
            if(volume > 0)
                volume =- 1;
    }
    
    public void subirCanal(){
        if(ligado)
            if(canal < 16)
                canal =+ 1;
    }
    
    public void descerCanal(){
        if(ligado)
            if(canal > 1)
                canal =- 1;   
    }
    
    public void ligarVisor(){
        ligado=true;
    }
    
    public void desligarVisor(){
        ligado=false;
    }
    
    public void mostraStatus(){
        if(ligado)
            System.out.println("Esta no canal "+canal+", no volume "+volume+" e o televisor esta ligado.");
        else
            System.out.println("O televisor esta desligado.");
    }
}

agora tenho que fazer um teste na main sera que alguem poderia me dar um empuramsinho para poder fazer isso o material que o professor deus eh muito basico.

essa eh a minha classe de teste main.

package tv;


public class Main {

   
    public static void main(String[] args) {
     Televisor tv =new Televisor();
     
tv.ligarVisor();
tv.subirCanal();
tv.aumentaVolume();
tv.mostraStatus();
tv.descerCanal();
tv.reduzirVolume();
tv.mostraStatus();

}
}

grata.

12 Respostas

b11
na sua classe main, use o objeto tv para chamar os metodos  correspondentes a

 Ligue o televisor;

 Suba 5 canais;

 Aumente o volume até o máximo;

 Mostre o Status;

 Desça até o primeiro canal;

 Reduza 2 pontos no volume;

 Mostre o Status;

exemplo:
tv.ligarVisor();
tv.aumentarVolume(); …

jessica_cachichi
sim isso eh mais oq eu nãqo to entendendo direito eh

eaquele

ex

Suba 5 canais;

Desça até o primeiro canal;

eu tenho que colocar dentro do parenteses do metodo neh mais a logica como seria?teria de colocar if?

grata.

gente ficaria assim

acho que ta errado pois todos ta com erro.
grata.

M

Vai ficar mais ou menos assim :

public class Televisor {
    public int canal=1;
    public int volume=0;
    public boolean ligado;
    
    public void aumentaVolume(){
        if(ligado)
            if(volume < 10)
                volume =+ 1;
    }
    
    public void reduzirVolume(){
        if(ligado)
            if(volume > 0)
                volume =- 1;
    }
    
    public void subirCanal(){
        if(ligado)
            if(canal < 16)
                canal =+ 1;
    }
    
    public void descerCanal(){
        if(ligado)
            if(canal > 1)
                canal =- 1;   
    }
    
    public void ligarVisor(){
        ligado=true;
    }
    
    public void desligarVisor(){
        ligado=false;
    }
    
    public void mostraStatus(){
        if(ligado)
            System.out.println("Esta no canal "+canal+", no volume "+volume+" e o televisor esta ligado.");
        else
            System.out.println("O televisor esta desligado.");
    }
}




class Main {
	public static void main (String[] args) {
		Televisor tv = new Televisor();
		tv.reduzirVolume();
		tv.descerCanal();
		tv.ligarVisor();
		tv.mostraStatus();
	}
}
M

Pra subir 5 canais por exemplo, dentro do teu método você coloca qtdecanais por exemplo e na hora de ‘chamar o método’ você põe o número de canais que deseja subir

b11

voce pode usar um for para fazer esse controle

M

Mais ou menos assim :

public void subirCanal(int qtdeCanal){
        if(ligado)
            if(canal+qtdeCanal<=16)
              this.canal = canal+qtdeCanal;

Depois para subir 5 canais :

tv.subirCanal(5);
G

Televisao.java

package padrao;

public class Televisao {

	private int canal = 1;
	private int volume = 0;
	private boolean ligado;

	public void aumentarVolume() {
		if (ligado) {
			if (volume < 10) {
				volume++;
			}
		}
	}

	public void reduzirVolume() {
		if (ligado) {
			if (volume > 0) {
				volume--;
			}
		}
	}

	public void subirCanal() {
		if (ligado) {
			if (canal < 16) {
				canal++;
			}
		}
	}

	public void descerCanal() {
		if (ligado) {
			if (canal > 1) {
				canal--;
			}
		}
	}

	public void ligarTv() {
		ligado = true;
	}

	public void desligarTv() {
		ligado = false;
	}

	public void mostarStatus() {
		if (ligado) {
			System.out.println("Esta no canal " + canal + ", no volume "
					+ volume + " e o televisor esta ligado.");
		} else {
			System.out.println("O televisor esta desligado.");
		}
	}

	public int getCanal() {
		return canal;
	}

	public void setCanal(int canal) {
		this.canal = canal;
	}

	public int getVolume() {
		return volume;
	}

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

	public boolean isLigado() {
		return ligado;
	}

	public void setLigado(boolean ligado) {
		this.ligado = ligado;
	}
}

App.java

package padrao;

public class App {

	public static void main(String[] args) {
		Televisao tv = new Televisao();

		tv.ligarTv();

		// subir 5 canais
		for (int i = 0; i < 5; i++) {
			tv.subirCanal();
		}

		// colocar o volume no máx
		while (tv.getVolume() < 10) {
			tv.aumentarVolume();
		}

		tv.mostarStatus();

		// descer até o 1 canal
		while(tv.getCanal() != 1){
			tv.descerCanal();
		}

		// reduzir 2 pontos volume
		for (int i = 0; i < 2; i++) {
			tv.reduzirVolume();
		}

		tv.mostarStatus();
	}

}
B

Aumentar e diminuir volume poderiam chamar uma mesma função para controle de volume, e esta função controlaria o volume máximo e mínimo. Desse jeito as regras não ficam espalhadas por todo lado.

B

mid_:
Mais ou menos assim :

public void subirCanal(int qtdeCanal){
        if(ligado)
            if(canal+qtdeCanal<=16)
              canal = canal+qtdeCanal;

Depois para subir 5 canais :

tv.subirCanal(5);


Apertar o botão de canal 5 vezes não é o mesmo que canal + 5. Televisões normalmente pulam canais não cadastrados. Canal + 5 iria direto para um canal válido ou não.

Se bem que este caso é simples demais p/ ter esse tipo de validação.

M

Considerando que os 16 canais são válidos.
Aliás, creio que seria melhor iniciar o canal com o valor 0, assim o canal que você digita dentro dos parênteses, é o canal que estará, desde que seja menor ou igual a 16

jessica_cachichi

deu certo sim muito obrigada gente.

Mr_Smith

Boa Noite!! GAlera!!!
Meu programa receberá um arquivo de entrada, enumerando pré-requisitos. O arquivo contém:
número de matérias, na primeira linha; pré-requisito e matérias, nas demais linhas. um exemplo de arquivo de entrada (a matéria 0, por exemplo, é pré-requisito de 1 e 4). A entrada é esta:

6
0 1 4
1 2
2
3 2 5
4 1 5
5 2

Como que faço para produzir um arquivo com a ordenação Topologica correta das matérias, observando os
pré-requisitos? é um exercício de revisão de prova preciso de pelo menos uma ideia, Ajuda aí moçada.
Só sei que a saída deve ficar assim:::
3 0 4 5 1 2

Antes de Tudo preciso de uma dica!!!

Como devo modelar minha função de leitura para que leia minha entrada que é esta que  coloquei?

a função minha é esta!

 que ela está lendo matriz e minha entrada não é matriz

public  int[][] Leitor(String P) throws Exception

{

BufferedReader leitor = new BufferedReader(new FileReader§);
int TAM = Integer.parseInt(leitor.readLine());
	int[][] matriz = new int[tamanho][tamanho];
	
	for (int i = 0; i < TAM; i++) {
		StringTokenizer st = new StringTokenizer(leitor.readLine());
		for (int j = 0; j < tamanho; j++) {
			matriz[i][j] = Integer.parseInt(st.nextToken());
		}
	}	
	leitor.close();
	return matriz;
}

VAlew!!

Qualquer dica será e grande Importância!!! A prova está chegando!!! VAlew
Boa semana!!

Criado 28 de maio de 2008
Ultima resposta 30 de mai. de 2008
Respostas 12
Participantes 6