Pular para o conteúdo

B.3 · Programação orientada a objetos

International Baccalaureate · IB Diploma · Computer Science · SL · Tópico 7

Ver Slides Treinar
7.1

Escopo e pré-requisitos

Foco SL suportado. Primeiro avaliação 2027 meta; PDF oficial retorna 403; breve antigo adquirido é avaliação final 2026. Guia restante, avaliação e requisitos práticos mantêm seus retenções registradas.

Pré-requisitos: leia as quantidades e unidades declaradas, use aritmética e as condições do modelo abaixo. Cada lição desenvolve seu próprio método antes da transferência independente.

Estes são exemplos didáticos originais ou explicitamente fictícios, não medições reais ou investigações avaliadas concluídas por aprendizes.

Vocabulário Treinar
English Português
instance/ˈɪnstəns/ instância
encapsulation/ɪnˌkæpsjʊˈleɪʃn/ encapsulamento
7.2

Objetos: estado, comportamento e interface

O que explicaria esta observação?

  • Dois objetos de modelo de conta bancária podem responder à mesma operação de depósito enquanto mantêm saldos diferentes.
  • Comece com uma previsão. Especifique as quantidades ou características que você compararia, depois decida quais evidências poderiam distinguir duas explicações.

Construa o modelo

  • Uma classe define um tipo com estado e comportamento. Um objeto é uma instância. Encapsulamento controla o acesso através de uma interface para que operações possam preservar invariantes. Herança modela uma relação de tipo adequada; composição modela um objeto contendo ou usando outro objeto.
  • encapsulamento: Controle de acesso ao estado através de uma interface; instância: Objeto individual de uma classe.
Objetos: estado, comportamento e uma interface: diagrama de exemplo original

Escolha evidências que possam testá-lo

  • Uma chamada de método atua sobre uma instância particular. Alterações de estado devem satisfazer pré-condições e pós-condições. Polimorfismo permite que o código use uma interface comum com diferentes implementações quando o contrato é respeitado.
  • Implemente um modelo sintético pequeno de conta ou inventário. Teste duas instâncias independentes, rejeite operações inválidas e valores limite. Mantenha o modelo distante de contas financeiras reais e credenciais.

Trabalhe a partir de quantidades conhecidas

  • Indique os valores conhecidos e suas unidades. Escolha a relação porque suas premissas se adequam a este caso, então reorganize antes de substituir.
  • Conhecido: o objeto A começa em 40 unidades e recebe 15; o objeto B começa em 20 e recebe 5. Os saldos finais são 55 e 25. Sua soma total é 80, mas nenhum saldo de objeto individual é 80.

Exemplo:

Uma instância começa em 12 unidades, adiciona 8 e remove 3. Encontre seu valor final. Use a mesma sequência: quantidades conhecidas → modelo → relação → substituição → unidade e interpretação.


Verifique a conclusão e seus limites

  • Uma classe não é a mesma coisa que uma instância. Herança não é automaticamente melhor que composição. Mero ocultar um campo não prova que todas as operações preservam estado válido.
  • Retorne à observação original. Explique o que o resultado apoia, quais condições ele assume e uma maneira de testar uma explicação concorrente.

Atenção:

Duas instâncias de uma classe devem sempre compartilhar um único saldo. Esta afirmação é falsa: Uma classe não é a mesma coisa que uma instância. Herança não é automaticamente melhor que composição. Mero ocultar um campo não prova que todas as operações preservam estado válido.

Chave:

Objetos: estado, comportamento e uma interface: Uma chamada de método atua sobre uma instância particular. Alterações de estado devem satisfazer pré-condições e pós-condições. Polimorfismo permite que o código use uma interface comum com diferentes implementações quando o contrato é respeitado.

Rastreio executável e limite

class Account:
    def __init__(self, balance):
        self.balance = balance
    def withdraw(self, amount):
        if amount < 0 or amount > self.balance:
            return False
        self.balance -= amount
        return True
a, b = Account(15), Account(20)
print(a.withdraw(30), a.balance, b.balance)
print(a.withdraw(15), a.balance, b.balance)

Saída esperada:

False 15 20
True 0 20

Rejeição ocorre antes da mutação. Com saldos iniciais não negativos, saques validados preservam saldo≥0. Esta pequena classe didática expõe atributos; um design de produção deve controlar todos os caminhos de mutação, não assumir que o método sozinho garante encapsulamento.

Mais tópicos em International Baccalaureate · IB Diploma · Computer Science · SL

Entrar ou criar conta

IGCSE, A-Level & AP