Contextualização
A programação orientada a objetos (POO) é uma maneira de organizar programas de computadores em torno de "objetos" e "classes" que manipulam estes objetos. Esta técnica foi originalmente desenvolvida para tornar a programação mais intuitiva e aprimorar a qualidade do software. A POO tornou-se a norma em quase todas as linguagens modernas de programação, incluindo Python, uma das melhores opções para quem deseja aprender os conceitos de POO de maneira eficaz e fácil de entender. Os conceitos básicos da orientação a objetos em Python, incluindo classes e objetos, atributos e métodos, herança, polimorfismo, encapsulamento, abstração de dados, métodos mágicos, métodos de classe vs métodos de instância vs métodos estáticos e o relacionamento entre classes, serão introduzidos neste projeto.
A Programação Orientada a Objetos (POO) é uma maneira moderna e eficaz de escrever softwares reutilizáveis. É uma maneira de estruturar um software em torno de entidades chamadas objetos, que são instâncias de classes, que são, por sua vez, modelos definidos pelo programador. Na POO, a programação é realizada com referência a objetos, enfocando os dados em vez de procedimentos. Isso leva a programas mais fáceis de entender, corrigir e modificar.
Os conceitos de POO tornam o domínio da programação um tema complexo, mas ao mesmo tempo uma ferramenta poderosa em suas mãos. Em situações do mundo real, a flexibilidade fornecida pela POO é insubstituível. Seja na construção de um jogo multiplayer online onde cada personagem, item e ambiente pode ser representado por um objeto, ou em um software de e-commerce, onde você precisa rastrear milhares de produtos, clientes e pedidos - a hábil utilização da POO torna a tarefa muito mais gerenciável.
Materiais extras para complementar o entendimento sobre o tema:
- [Python Documentation - Classes]
- [Geeks for Geeks - Object-Oriented Programming in Python]
- [Real Python - Object-Oriented Programming (OOP) in Python 3]
Atividade Prática
Simulando um Sistema de Biblioteca usando Python e Princípios de POO
Objetivo
Aprender e aplicar conceitos fundamentais de POO (Programação Orientada a Objetos) em Python através da criação de um sistema de biblioteca simples.
Materiais Necessários
Os alunos deverão ter um computador com Python 3 instalado para a realização da atividade.
Descrição Detalhada do Projeto
Cada grupo de 3 a 5 alunos terá a tarefa de desenvolver um modelo simplificado de um sistema de biblioteca. Esse sistema consisitirá de classes como Biblioteca, Livro e Pessoa (com subclasses como Bibliotecário e Leitor). Essas classes constituirão os principais componentes do sistema e interagirão entre si para simular o funcionamento básico de uma biblioteca.
Os objetivos do projeto são:
- Implementar as classes Biblioteca, Livro, Pessoa, Bibliotecário e Leitor, com seus respectivos atributos e métodos.
- Simular a interação entre estas classes criando um fluxo de operações típicas de uma biblioteca, como registro de novos livros, gerenciamento de empréstimos e devoluções, etc.
- Praticar e reforçar a entender a relação entre classes e objetos, atributos e métodos, e os conceitos de herança, polimorfismo e encapsulamento.
Passo a Passo Detalhado para a Realização da Atividade
Semana 1: Planejamento e Design de Classes
- Comece com a classe
Livro
. Ela deve ter atributos para identificação do livro (como título, autor e isbn), e um método para exibir as informações do livro. - Implemente a classe
Pessoa
com atributos básicos como nome e idade e a classeBibliotecario
que herda dePessoa
. A classeBibliotecario
deve ter métodos para adicionar ou remover livros da biblioteca. - Implemente a classe
Leitor
que também herda dePessoa
. A classeLeitor
deve ter métodos para pegar emprestado e devolver livros. - Próximo passo é implementar a classe
Biblioteca
que terá uma lista de Livros e métodos para listar os livros disponíveis, emprestar um livro para umLeitor
e receber um livro devolvido.
Semana 2 e 3: Implementação e Teste
- Comece a construir seus objetos na ordem em que os planejou. Certifique-se de que cada classe funciona como esperado antes de passar para a próxima.
- Depois de implementar suas classes, crie alguns objetos de teste de cada uma delas. Para começar, crie alguns livros, bibliotecários e leitores e teste se eles se comportam como deveriam.
- Adicione estes livros à sua biblioteca utilizando o método do bibliotecário para adicionar livros.
- Tente pegar emprestados alguns livros da biblioteca com um objeto
Leitor
e ver o que acontece. - Devolva esses livros emprestados com o método de devolução do objeto
Leitor
e observe se eles são corretamente devolvidos à biblioteca.
Semana 4: Preparação do Relatório
- Comece a redigir o relatório da atividade, começando com a Introdução, explicando o contexto do trabalho e o que o motivou, depois o Desenvolvimento onde se explica a teoria usada e se discute os resultados obtidos na implementação.
- Os aspectos colaborativos devem ser mencionados, como a divisão de tarefas e como os membros trabalharam juntos para resolver os problemas.
- Por último, as Conclusões onde se fala sobre o que se aprendeu com a realização do projeto e como isso foi alcançado e na Bibliografia, onde são apresentados os recursos aprendidos durante a elaboração do projeto.
- Todo o código do python deve ser colocado no Apêndice do relatório.
Entregas do Projeto
O trabalho final a ser apresentado pelo grupo deve conter:
- Uma explicação documentada de todas as classes, atributos, métodos e interfaces implementados.
- O código Python para o sistema de biblioteca, devidamente comentado.
- Um relatório escrito detalhado conforme explicado acima
Lembre-se de ter breves reuniões de equipe durante o projeto para discutir seus avanços, qualquer problema encontrado e ajustar o planejamento da equipe se necessário.