Programação Orientada a objetos, lista teorica
Por: Lidieisa • 21/5/2018 • 1.112 Palavras (5 Páginas) • 298 Visualizações
...
}
}
package joaovitor;
public class JoaoVitor {
public static void main(String[] args) {
Conta jv = new Conta(356454, 765.4, "João Gostoso");
jv.Depositar(100);
jv.Sacar(50);
jv.Imprimir();
}
}
9 - (Sobrecarga de Métodos) Considerando as classes abaixo, para cada chamada ao método sobrecarregado “doisValores” identifique que forma do método será chamada.
class Soma {
public int doisValores(int a,int b){ // soma dois inteiros
return a+b;
}
public double doisValores(double a,int b){ // soma um double e um inteiro
return a+b;
}
public double doisValores(double a,double b) {// soma dois doubles
return a+b;
}
}
class TesteSoma {
public static void main(String[] args)
{ Soma soma = new Soma(); // cria instância da classe Soma
byte b = 20;
short s = 99;
long l = 1234L;
float f = 3.1416f;
double d = 2000;
// Chama vários métodos da classe Soma
System.out.println(soma.doisValores(b,s)); // soma dois inteiro
System.out.println(soma.doisValores(i,s)); // soma dois inteiro
System.out.println(soma.doisValores(i,i)); // soma dois inteiro
System.out.println(soma.doisValores(l,b)); // soma um double e um inteiro
System.out.println(soma.doisValores(f,s)); // soma um double e um inteiro
System.out.println(soma.doisValores(d,b)); // soma um double e um inteiro
System.out.println(soma.doisValores(b,d)); // soma um double e um inteiro
System.out.println(soma.doisValores(i,l)); // soma um double e um inteiro
System.out.println(soma.doisValores(l,l)); // soma dois doubles
System.out.println(soma.doisValores(d,f)); // soma dois doubles
}
}
10 - (Herança, Interface) A classe a seguir implementa um modelo de TV, com operações descritas na interface Controle Remoto. Pede-se:
A) Explique cada uso da palavra reservada “super” na classe.
A palavra “super” representa uma chamada de método ou acesso a um atributo da superclasse
B) Sabendo que, com exceção do método construtor da classe, todos os demais métodos são implementações de métodos especificados na Interface “ControleRemoto”, mostre a
implementação desta interface.
public class ModeloSDX extends TV implements ControleRemoto {
public final String MODELO = "TV-SDX";
public ModeloSDX(int tamanho) {
super(tamanho);
}
public void desligar() {
System.out.println("Tchau!");
super.setLigada(false);
}
public void ligar() {
super.setLigada(true);
}
public void aumentarVolume(int taxa) { }
public void diminuirVolume(int taxa) { }
public void mudarCanal(int canal) { }
}
interface ControleRemoto(){
final static String Modelo;
public ModeloSDX(int tamanho) {
}
public void desligar() {
}
public void ligar() {
}
public void aumentarVolume(int taxa) { }
public void diminuirVolume(int taxa) { }
public void mudarCanal(int canal) { }
}
}
C) No exercício anterior, percebe-se que nem todos os métodos especificados na interface “ControleRemoto” são implementados pela classe, que fornece operações vazias para estes métodos: aumentarVolume, diminuirVolume, mudarCanal. Sabe-se que este tipo de ocorrência causa um problema, devido ao acoplamento desta classe com métodos que ela não precisa, causando dependência em relação à classe e estes métodos. Uma forma de resolver este problema é dividir a interface, em duas ou mais, de forma que cada classe que implemente-as, fique dependente apenas dos métodos que realmente necessitam. Então, para resolver este problema de projeto de interfaces, pede-se:
1) Divida a interface ControleRemoto em três interfaces: ControleLigar, ControleVolume e
...