Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Programação Modular | Herança

Programação Modular | Herança

Slides utilizados em aula na disciplina Programação Modular do Instituto de Ciências Exatas e Informática - Sistemas de Informação. Pontifícia Universidade Católica de Minas Gerais - Unidade Barreiro, 1º Semestre 2015.

Eduardo Miranda

February 28, 2015
Tweet

More Decks by Eduardo Miranda

Other Decks in Education

Transcript

  1. herança genética É o processo pelo qual um organismo adquire

    características semelhantes à do organismo que o gerou, através de informações codificadas (código genético) que são transmitidas à descendência.
  2. Herança é o processo de criação de uma nova classe

    a partir de uma classe existente.
  3. Generalização é quandro criamos uma classe base a partir de

    características similares (atributos e comportamentos) a partir de dois ou mais objetos.
  4. Especialização é quandro criamos uma subclasse a partir de uma

    classe existente para uma tarefa específica.
  5. public class Coordenadas { private int x, y; public Coordenadas()

    // construtor { x = 0; y = 0; } public int X { get { return x; } set { x = value; } } public int Y { get { return y; } set { y = value; } } }
  6. public class Coordenadas { private int x, y; public Coordenadas()

    // construtor { x = 0; y = 0; } public int X { get { return x; } set { x = value; } } public int Y { get { return y; } set { y = value; } } } public class CoordenadasColoridas : Coordenadas { private System.Drawing.Color screenColor; public CoordenadasColoridas() // construtor { screenColor = System.Drawing.Color.Red; } public System.Drawing.Color ScreenColor { get { return screenColor; } set { screenColor = value; } } }
  7. public class Coordenadas { private int x, y; public Coordenadas()

    // construtor { x = 0; y = 0; } public int X { get { return x; } set { x = value; } } public int Y { get { return y; } set { y = value; } } } public class CoordenadasColoridas : Coordenadas { private System.Drawing.Color screenColor; public CoordenadasColoridas() // construtor { screenColor = System.Drawing.Color.Red; } public System.Drawing.Color ScreenColor { get { return screenColor; } set { screenColor = value; } } }
  8. 6) Modele sua solução para que o seu cliente além

    de ter uma Conta Corrente tenha também uma Conta Poupança. Além disso, a Conta Poupança deve possui um método para correção do valor. exercício public class ContaCorrente { private double saldo; public void deposita(double valor) { this.saldo += valor; } public void saca(double valor) { this.saldo -= valor; } public double getSaldo() { return this.saldo; } }
  9. 6) Modele sua solução para que o seu cliente além

    de ter uma Conta Corrente tenha também uma Conta Poupança. DICA exercício
  10. public class Conta { protected double saldo; public Conta(double s)

    { this.saldo = s; } public void deposita(double valor) { this.saldo += valor; } public void saca(double valor) { this.saldo -= valor; } public double getSaldo() { return this.saldo; } } public class ContaCorrente : Conta { public ContaCorrente(double saldo) : base(saldo) { } } public class ContaPoupanca : Conta { public ContaPoupanca(double saldo) : base(saldo) { } // Taxa de correção em porcentagem // Exemplo: 0.6% public void CorrecaoDeValor(double taxaCorrecao) { this.saldo = this.saldo * (1 + taxaCorrecao / 100 ); } }
  11. class Program { static void Main(string[] args) { ContaCorrente cc

    = new ContaCorrente(100.00); ContaPoupanca cp = new ContaPoupanca(200.00); Console.WriteLine ( String.Format( "Saldo Conta Corrente: {0}" ,cc.getSaldo().ToString() ) ); Console.WriteLine ( String.Format( "Saldo Conta Poupança: {0}" ,cp.getSaldo().ToString() ) ); cp.CorrecaoDeValor( 0.6 ); Console.WriteLine ( String.Format( "Saldo Conta Poupança: {0}" ,cp.getSaldo().ToString() ) ); } }
  12. class Program { static void Main(string[] args) { ContaCorrente cc

    = new ContaCorrente(100.00); ContaPoupanca cp = new ContaPoupanca(200.00); Console.WriteLine ( String.Format( "Saldo Conta Corrente: {0}" ,cc.getSaldo().ToString() ) ); Console.WriteLine ( String.Format( "Saldo Conta Poupança: {0}" ,cp.getSaldo().ToString() ) ); cp.CorrecaoDeValor( 0.6 ); Console.WriteLine ( String.Format( "Saldo Conta Poupança: {0}" ,cp.getSaldo().ToString() ) ); } } Saída correta: Saldo Conta Corrente: 100 Saldo Conta Poupança: 200 Saldo Conta Poupança: 201.2