aulify
UC UC00608 · T. Desenv. Software, T. Inform. Gestão
Ficha 01 · Classes e encapsulamento
Definir classes, atributos, métodos, properties
Versão · Aluno
Tempo · 60 minutos
Cotação · 100 pontos
Aluno(a)
Turma
Nº
Data
Objectivos da ficha
- Modelar com classes
- Aplicar encapsulamento
- Usar properties
- Definir métodos especiais
Parte I · Classes
Exercício 1 · Classe Livro (15 pts)
Cria uma classe Livro com atributos titulo, autor, ano, paginas. Adiciona método descrever() que devolve string formatada. Testa criando 2 livros e imprimindo.
Exercício 2 · Método repr (10 pts)
Adiciona __repr__ e __str__ à classe Livro. Qual a diferença entre os dois?
Parte II · Encapsulamento
Exercício 3 · Conta bancária (20 pts)
Cria classe ContaBancaria com:
- Atributo "privado" _saldo.
- Métodos depositar(valor), levantar(valor), saldo().
- Levantar deve falhar com excepção se saldo insuficiente ou valor negativo.
Exercício 4 · Properties (15 pts)
Adiciona à ContaBancaria uma property saldo (em vez do método) e validar que o titular tem mínimo 3 caracteres no construtor.
Parte III · Métodos especiais
Exercício 5 · Classe Vetor (20 pts)
Cria classe Vetor com x, y. Implementa:
- __init__
- __repr__
- __add__ — soma de vectores.
- __eq__ — comparação.
- __abs__ — magnitude.
Parte IV · Cenário
Exercício 6 · Sistema de aluguer (20 pts)
Modela um sistema de aluguer de bicicletas com:
- Classe
Bicicleta:id,modelo,disponivel(default True). - Classe
Aluguer:bicicleta,cliente,inicio,fim(inicialmente None). - Métodos:
Bicicleta.alugar(cliente)— cria aluguer, marca indisponível.Aluguer.terminar()— define fim, marca bicicleta disponível.