Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

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

Prévia do material em texto

Para exemplificar a programação orientada a objetos (POO), vou criar um sistema simples de gerenciamento de uma biblioteca em Python. Este exemplo abordará conceitos como classes, objetos, encapsulamento, herança e polimorfismo, mostrando como esses elementos são fundamentais na POO.
### Definição das Classes
Vamos definir três classes principais: `Livro`, `Usuario` e `Bibliotecario`.
1. **Classe `Livro`:**
 - A classe `Livro` representará os livros na biblioteca, com atributos como título, autor e status de empréstimo.
 ```python
 class Livro:
 def __init__(self, titulo, autor):
 self.titulo = titulo
 self.autor = autor
 self.emprestado = False # status do livro: não emprestado inicialmente
 def emprestar(self):
 if not self.emprestado:
 self.emprestado = True
 return True
 else:
 return False
 def devolver(self):
 if self.emprestado:
 self.emprestado = False
 return True
 else:
 return False
 def __str__(self):
 status = "disponível" if not self.emprestado else "emprestado"
 return f"{self.titulo} por {self.autor} - {status}"
 ```
2. **Classe `Usuario`:**
 - A classe `Usuario` representará os usuários da biblioteca, com atributos como nome, número de identificação e livros atualmente emprestados.
 ```python
 class Usuario:
 def __init__(self, nome, id):
 self.nome = nome
 self.id = id
 self.livros_emprestados = []
 def emprestar_livro(self, livro):
 if livro.emprestar():
 self.livros_emprestados.append(livro)
 return True
 else:
 return False
 def devolver_livro(self, livro):
 if livro in self.livros_emprestados:
 self.livros_emprestados.remove(livro)
 livro.devolver()
 return True
 else:
 return False
 def __str__(self):
 return f"Usuário: {self.nome}, ID: {self.id}, Livros emprestados: {len(self.livros_emprestados)}"
 ```
3. **Classe `Bibliotecario`:**
 - A classe `Bibliotecario` representará os bibliotecários, que têm acesso a funcionalidades administrativas, como adicionar novos livros ao sistema.
 ```python
 class Bibliotecario:
 def __init__(self, nome, id):
 self.nome = nome
 self.id = id
 def adicionar_livro(self, biblioteca, titulo, autor):
 novo_livro = Livro(titulo, autor)
 biblioteca.append(novo_livro)
 return novo_livro
 def __str__(self):
 return f"Bibliotecário: {self.nome}, ID: {self.id}"
 ```
### Utilização das Classes
Agora, podemos utilizar as classes definidas para simular o funcionamento básico de uma biblioteca:
```python
# Criando alguns livros
livro1 = Livro("Python Programming", "John Smith")
livro2 = Livro("Data Science Essentials", "Jane Doe")
# Criando um bibliotecário
bibliotecario = Bibliotecario("Carlos", 123)
# Criando uma lista para representar a biblioteca
biblioteca = []
# Adicionando livros à biblioteca
bibliotecario.adicionar_livro(biblioteca, "Introduction to AI", "Alan Turing")
bibliotecario.adicionar_livro(biblioteca, "Machine Learning Basics", "Andrew Ng")
# Criando alguns usuários
usuario1 = Usuario("Alice", 101)
usuario2 = Usuario("Bob", 102)
# Usuário Alice empresta um livro
usuario1.emprestar_livro(livro1)
# Usuário Bob empresta dois livros
usuario2.emprestar_livro(livro2)
usuario2.emprestar_livro(biblioteca[0]) # Empréstimo de um livro adicionado pelo bibliotecário
# Exibindo informações
print("Livros na biblioteca:")
for livro in biblioteca:
 print(livro)
print("\nInformações dos usuários:")
print(usuario1)
print(usuario2)
print("\nInformações do bibliotecário:")
print(bibliotecario)
```
### Explicação do Funcionamento
- **Classes:** `Livro`, `Usuario` e `Bibliotecario` encapsulam dados e comportamentos relacionados, promovendo modularidade e reutilização de código.
- **Objetos:** `livro1`, `usuario1`, `bibliotecario`, etc., são instâncias dessas classes, permitindo manipulação e interação conforme necessário.
- **Herança e Polimorfismo:** Embora não explicitamente demonstrados neste exemplo, podem ser implementados para casos mais complexos, como tipos específicos de livros ou funcionalidades diferenciadas para diferentes tipos de usuários.
### Conclusão
Este exemplo ilustra como a programação orientada a objetos pode ser aplicada na criação de sistemas de software robustos e organizados, como os sistemas de gerenciamento de bibliotecas. Através de conceitos como encapsulamento, herança e polimorfismo, a POO não apenas melhora a estrutura e a modularidade do código, mas também facilita a manutenção e a extensão de funcionalidades, sendo essencial na tecnologia da informação moderna.

Mais conteúdos dessa disciplina