Skip to content

Commit

Permalink
Merge pull request #8 from vbuxbaum/cap-introducao
Browse files Browse the repository at this point in the history
Cap introducao - Decisões e continuação de implementações
  • Loading branch information
vbuxbaum authored Mar 27, 2021
2 parents 3aa4ca9 + 360580d commit 78f406c
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 0 deletions.
3 changes: 3 additions & 0 deletions 1_introducao/11_sobrecarga.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
"""
Implementado no arquivo 8_heranca_poliformismo.py
"""
29 changes: 29 additions & 0 deletions 1_introducao/12_aplicacao_bancaria.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
"""
Nesta implementação em Java, o método imprime() lança Strings na saída padrão.
Para facilitar a implementação de testes, o comportamento desse método foi
alterado para que apenas retorne as respectivas Strings.
"""


class ContaBancaria:
def __init__(self, saldo_inicial):
self.saldo = saldo_inicial

def depositar(self, valor):
self.saldo += valor

def sacar(self, valor):
self.saldo -= valor

def verifica_saldo(self):
return "Saldo = $" + str(self.saldo)


conta_teste = ContaBancaria(200.00)

assert conta_teste.verifica_saldo() == "Saldo = $200.0"

conta_teste.depositar(50.00)
conta_teste.sacar(70.00)

assert conta_teste.verifica_saldo() == "Saldo = $180.0"
26 changes: 26 additions & 0 deletions 1_introducao/13_static.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
"""
Nesta implementação em Java, o livro utiliza o artificio 'static' da linguagem.
Entretanto não há uma forma, em Python, para simular o comportamento de
atributos estáticos EXATAMENTE como ocorre em Java.
Para simular o comportamento em Python, o atributo estático deve ser acessado
diretamente por sua classe, e não pela instância (como é feito no livro).
"""


class A:

STATIC = int()

def __init__(self):
self.media = int()


a = A()
A.STATIC, a.STATIC, a.media = 5, 5, 5

b = A()
A.STATIC, b.STATIC, b.media = 7, 7, 7


assert (A.STATIC, a.STATIC, a.media, b.STATIC, b.media) == (7, 5, 5, 7, 7)
9 changes: 9 additions & 0 deletions 1_introducao/8_heranca_polimorfismo.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@ def __init__(self):
def salario_mensal(self):
return self._salario + self.__bonus

# implementação 1.11:
def salario_mensal(self, desconto):
return self._salario + self._bonus - desconto

# implementação 1.11 alternativa:
#
# def salario_mensal(self, desconto=0):
# return self._salario + self.__bonus - desconto

def imprime(self):
return "Gerente"

Expand Down

0 comments on commit 78f406c

Please sign in to comment.