diff --git a/1_introducao/11_sobrecarga.py b/1_introducao/11_sobrecarga.py new file mode 100644 index 0000000..9167ffb --- /dev/null +++ b/1_introducao/11_sobrecarga.py @@ -0,0 +1,3 @@ +""" +Implementado no arquivo 8_heranca_poliformismo.py +""" diff --git a/1_introducao/12_aplicacao_bancaria.py b/1_introducao/12_aplicacao_bancaria.py new file mode 100644 index 0000000..9b05a52 --- /dev/null +++ b/1_introducao/12_aplicacao_bancaria.py @@ -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" diff --git a/1_introducao/13_static.py b/1_introducao/13_static.py new file mode 100644 index 0000000..f2234bf --- /dev/null +++ b/1_introducao/13_static.py @@ -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) diff --git a/1_introducao/8_heranca_polimorfismo.py b/1_introducao/8_heranca_polimorfismo.py index 8b0c77c..e30a467 100644 --- a/1_introducao/8_heranca_polimorfismo.py +++ b/1_introducao/8_heranca_polimorfismo.py @@ -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"