Prévia do material em texto
Claro, vou criar um exemplo de código em Python que demonstra conceitos de programação orientada a objetos (POO). Este exemplo será baseado em um sistema simples de gerenciamento de uma biblioteca, onde teremos classes para representar livros, usuários e funcionalidades básicas de empréstimo e consulta de livros.
### Exemplo de Programação Orientada a Objetos em Python
```python
# Classe Livro
class Livro:
def __init__(self, titulo, autor, isbn):
self.titulo = titulo
self.autor = autor
self.isbn = isbn
self.emprestado = False
def emprestar(self):
if not self.emprestado:
self.emprestado = True
print(f'O livro "{self.titulo}" foi emprestado.')
else:
print(f'O livro "{self.titulo}" já está emprestado.')
def devolver(self):
if self.emprestado:
self.emprestado = False
print(f'O livro "{self.titulo}" foi devolvido.')
else:
print(f'O livro "{self.titulo}" já está disponível.')
def __str__(self):
status = "emprestado" if self.emprestado else "disponível"
return f'{self.titulo} por {self.autor} (ISBN: {self.isbn}) - {status}'
# Classe Usuário
class Usuario:
def __init__(self, nome, email):
self.nome = nome
self.email = email
def __str__(self):
return f'Usuário: {self.nome}, Email: {self.email}'
# Exemplo de utilização das classes
# Criando alguns livros
livro1 = Livro("Aprendendo Python", "Mark Lutz", "978-85-7522-508-0")
livro2 = Livro("Design Patterns", "Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides", "978-85-7522-661-2")
# Criando alguns usuários
usuario1 = Usuario("João", "joao@email.com")
usuario2 = Usuario("Maria", "maria@email.com")
# Exemplo de empréstimo e devolução de livros
livro1.emprestar()
livro2.emprestar()
livro1.emprestar() # Tentativa de emprestar o mesmo livro novamente
livro2.devolver()
livro1.devolver()
# Exibindo informações dos livros e usuários
print(livro1)
print(livro2)
print(usuario1)
print(usuario2)
```
### Explicação do Código
1. **Classe Livro:**
- A classe `Livro` possui um construtor `__init__` que inicializa os atributos `titulo`, `autor`, `isbn` e `emprestado`.
- Métodos:
- `emprestar()`: Verifica se o livro está disponível e o empresta.
- `devolver()`: Verifica se o livro está emprestado e o devolve.
- `__str__()`: Sobrescreve o método padrão para retornar uma representação em string do livro.
2. **Classe Usuário:**
- A classe `Usuario` possui um construtor `__init__` que inicializa os atributos `nome` e `email`.
- Método:
- `__str__()`: Sobrescreve o método padrão para retornar uma representação em string do usuário.
3. **Exemplo de Utilização:**
- Criamos instâncias de `Livro` e `Usuario`.
- Demonstramos o uso dos métodos `emprestar()` e `devolver()` para os livros.
- Exibimos informações dos livros e usuários usando o método `__str__()` sobrescrito.
### Conclusão
Este exemplo simples ilustra como a POO pode ser aplicada em Python para modelar objetos do mundo real, como livros e usuários, e definir interações entre eles. A utilização de classes e métodos facilita a organização do código, promove a reutilização e encapsula o comportamento dos objetos de maneira eficiente. Na prática, sistemas mais complexos poderiam expandir esses conceitos, incluindo herança, polimorfismo e interfaces para criar soluções robustas e escaláveis na tecnologia da informação.