Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Para demonstrar um exemplo prático de programação orientada a objetos (POO), vamos criar um sistema simples de gerenciamento de uma biblioteca. Neste sistema, teremos classes que representam diferentes entidades, como livros, usuários e bibliotecários, e métodos para realizar operações básicas como adicionar livros, emprestar livros e consultar disponibilidade.
### Exemplo de Programação Orientada a Objetos: Sistema de Biblioteca
#### Classes e Estrutura do Sistema
1. **Classe `Livro`:**
 - Esta classe representa um livro na biblioteca e contém atributos como título, autor, ano de publicação e status de disponibilidade (emprestado ou não).
 ```python
 class Livro:
 def __init__(self, titulo, autor, ano_publicacao):
 self.titulo = titulo
 self.autor = autor
 self.ano_publicacao = ano_publicacao
 self.disponivel = True # Inicialmente disponível
 
 def emprestar(self):
 if self.disponivel:
 self.disponivel = False
 print(f"O livro '{self.titulo}' foi emprestado.")
 else:
 print(f"O livro '{self.titulo}' não está disponível no momento.")
 
 def devolver(self):
 if not self.disponivel:
 self.disponivel = True
 print(f"O livro '{self.titulo}' foi devolvido.")
 else:
 print(f"O livro '{self.titulo}' já está disponível.")
 ```
2. **Classe `Usuario`:**
 - Representa um usuário da biblioteca, com atributos como nome, número de identificação e lista de livros emprestados.
 ```python
 class Usuario:
 def __init__(self, nome, id):
 self.nome = nome
 self.id = id
 self.livros_emprestados = []
 
 def emprestar_livro(self, livro):
 if len(self.livros_emprestados) < 3:
 livro.emprestar()
 self.livros_emprestados.append(livro)
 else:
 print(f"Usuário {self.nome} atingiu o limite máximo de livros emprestados.")
 
 def devolver_livro(self, livro):
 if livro in self.livros_emprestados:
 livro.devolver()
 self.livros_emprestados.remove(livro)
 else:
 print(f"O livro '{livro.titulo}' não foi emprestado por {self.nome}.")
 ```
3. **Classe `Bibliotecario`:**
 - Representa um bibliotecário, com métodos para adicionar novos livros ao sistema e consultar informações.
 ```python
 class Bibliotecario:
 def adicionar_livro(self, biblioteca, livro):
 biblioteca.acervo.append(livro)
 print(f"O livro '{livro.titulo}' foi adicionado ao acervo.")
 
 def consultar_disponibilidade(self, biblioteca, titulo):
 for livro in biblioteca.acervo:
 if livro.titulo == titulo:
 status = "disponível" if livro.disponivel else "não disponível"
 print(f"O livro '{livro.titulo}' está {status}.")
 return
 print(f"O livro '{titulo}' não está disponível na biblioteca.")
 ```
4. **Classe `Biblioteca`:**
 - Representa a própria biblioteca, contendo um acervo de livros e métodos para gerenciar o acervo.
 ```python
 class Biblioteca:
 def __init__(self, nome):
 self.nome = nome
 self.acervo = []
 
 def listar_livros(self):
 print(f"Lista de livros na biblioteca '{self.nome}':")
 for livro in self.acervo:
 status = "disponível" if livro.disponivel else "emprestado"
 print(f"- '{livro.titulo}' de {livro.autor} ({status})")
 ```
#### Utilização do Sistema
Agora, vamos exemplificar como utilizar este sistema:
```python
# Criando uma biblioteca
biblioteca = Biblioteca("Biblioteca Central")
# Criando alguns livros
livro1 = Livro("Python Cookbook", "David Beazley", 2013)
livro2 = Livro("Clean Code", "Robert C. Martin", 2008)
# Criando usuários
usuario1 = Usuario("João", 101)
usuario2 = Usuario("Maria", 202)
# Criando um bibliotecário
bibliotecario = Bibliotecario()
# Adicionando livros à biblioteca
bibliotecario.adicionar_livro(biblioteca, livro1)
bibliotecario.adicionar_livro(biblioteca, livro2)
# Listando os livros disponíveis na biblioteca
biblioteca.listar_livros()
# Usuário João empresta um livro
usuario1.emprestar_livro(livro1)
# Verificando a disponibilidade do livro "Clean Code"
bibliotecario.consultar_disponibilidade(biblioteca, "Clean Code")
# Usuário Maria tenta emprestar um livro
usuario2.emprestar_livro(livro1)
# Usuário João devolve o livro emprestado
usuario1.devolver_livro(livro1)
# Verificando novamente a disponibilidade do livro "Python Cookbook"
bibliotecario.consultar_disponibilidade(biblioteca, "Python Cookbook")
```
### Conclusão
A programação orientada a objetos oferece uma maneira eficiente e estruturada de modelar e implementar sistemas complexos como um sistema de biblioteca. Ao utilizar classes, objetos, encapsulamento, herança e polimorfismo, podemos criar código mais organizado, reutilizável e fácil de manter. Este exemplo demonstra como os princípios da POO podem ser aplicados na prática para resolver problemas do mundo real na tecnologia da informação.

Mais conteúdos dessa disciplina