Boa noite pessoas, gostaria de saber como ficaria esta classe encapsulada ??
public class TV {
int canal;
int volume;
boolean ligada;
int tamanho;
public TV(){
this.tamanho = 42;
this.ligada = true;
}
public static void main (String args []){
TV minhaTV = new TV();
minhaTV.canal = 7;
minhaTV.volume = 22;
}
}
Pelo pouco que sei teria q tornar os metodos privados e usar os metodos set e get ???
Olá nataliatorgano,
No encapsulamento você deve tornar suas variáveis (canal, volume, ligada, tamanho) privadas e criar métodos de acesso (get e set) públicos. Em outras palavras, suas variáveis só podem ser acessadas diretamente dentro da classe TV.
Utilizando os métodos de acesso (get e set) você garante que as regras da sua classe sejam cumpridas. Por exemplo, ao tentar mudar o canal ou volume você deveria verificar se a TV está ligada.
Olha como ficaria o código abaixo.
public class TV {
private int canal;
private int volume;
private boolean ligada;
private int tamanho;
public TV(){
this.tamanho = 42;
this.ligada = true;
}
public void setCanal(int novoCanal){
// Testar se a TV está ligada
canal = novoCanal;
}
public int getCanal(){
// Testar se a TV está ligada
return canal;
}
public void setVolume(int novoVolume){
// Testar se a TV está ligada
volume = novoVolume;
}
public int getVolume(){
// Testar se a TV está ligada
return volume ;
}
public static void main (String args []){
TV minhaTV = new TV();
minhaTV.setCanal(7);
minhaTV.setVolume(22);
}
}
Oiiiiiii alcidesflach
poxa mto obrigado pela ajuda, tô tentando aprender aqui, de acordo com a sua classe eu só acertei até a
[b]public TV(){
this.tamanho = 42;
this.ligada = true;[/b]
NÃO TINHA CONSEGUIDO CRIAR AS CLASSES PUBLICAS…
[b]public void setCanal(int novoCanal){
// Testar se a TV está ligada [/b]
nataliatorgano você pode ter noção do que faz colocando uma mensagem de saída dentro da classe…
Assim:
public static void main (String args []){
TV minhaTV = new TV();
minhaTV.setCanal(7);
minhaTV.setVolume(22);
System.out.println("A televisão está ligada no canal "+minhaTV.getCanal());
System.out.println("O volume atual da televisão é "+minhaTV.getVolume());
}
A msg vai ser mostrada na console