Utilizando a linguagem de programação orientada a objetos de sua preferência, crie uma classe para modelar um livro. Quais atributos e métodos são importantes para um sistema que tem um livro como objeto? Defina os métodos construtor e destrutor da classe.
Passo 1
Beleza, vamos lá! O exercício pede para a gente criar uma classe que modele um livro usando programação orientada a objetos (POO). Isso significa que vamos definir as características e comportamentos que um livro tem dentro de um sistema. Para isso, vamos precisar pensar nos atributos (as características do livro, tipo título, autor) e nos métodos (as ações que o livro pode realizar ou que podemos fazer com ele, como emprestar ou devolver). Também vamos definir o método construtor, que cria o objeto livro com suas características, e o destruidor, que remove o objeto quando não for mais necessário.
Passo 2
Primeiro, vamos escolher uma linguagem de programação. Vou usar Python porque é bem intuitiva e fácil de entender. Na POO, a gente cria classes que são como moldes para os objetos. Então, vamos criar uma classe chamada
Livro
.class Livro:
pass
Passo 3
Agora, vamos pensar nos atributos que um livro geralmente tem. Alguns importantes são:
- Título (
titulo
): o nome do livro. - Autor (
autor
): quem escreveu o livro. - ISBN (
isbn
): um código único que identifica o livro. - Ano de publicação (
ano_publicacao
): quando o livro foi publicado. - Disponível (
disponivel
): se o livro está disponível para empréstimo.
Vamos adicionar esses atributos na nossa classe.
Passo 4
Para adicionar os atributos, usamos o método construtor. Em Python, ele é definido com
__init__
. Esse método é chamado quando a gente cria uma nova instância da classe, ou seja, um novo livro.class Livro:
def __init__(self, titulo, autor, isbn, ano_publicacao):
self.titulo = titulo
self.autor = autor
self.isbn = isbn
self.ano_publicacao = ano_publicacao
self.disponivel = True # Por padrão, o livro está disponível
Explicação: O método
__init__
recebe os parâmetros básicos do livro e inicializa os atributos. self.disponivel
é definido como True
por padrão, indicando que o livro está disponível para empréstimo quando criado.Passo 5
Agora, vamos definir alguns métodos para que possamos interagir com o objeto
Livro
. Dois métodos básicos são:- emprestar: marca o livro como não disponível.
- devolver: marca o livro como disponível.
class Livro:
def __init__(self, titulo, autor, isbn, ano_publicacao):
self.titulo = titulo
self.autor = autor
self.isbn = isbn
self.ano_publicacao = ano_publicacao
self.disponivel = True
def emprestar(self):
if self.disponivel:
self.disponivel = False
print(f"O livro '{self.titulo}' foi emprestado.")
else:
print(f"O livro '{self.titulo}' já está emprestado.")
def devolver(self):
self.disponivel = True
print(f"O livro '{self.titulo}' foi devolvido.")
Explicação:
- O método
emprestar
verifica se o livro está disponível. Se estiver, muda o status paraFalse
e avisa que o livro foi emprestado. Se não, informa que já está emprestado. - O método
devolver
simplesmente marca o livro como disponível novamente e avisa que foi devolvido.
Passo 6
Vamos também definir o método destruidor. Em Python, ele é representado por
__del__
e é chamado quando o objeto é removido da memória. Embora em Python não seja muito comum precisar de um destruidor, vamos implementá-lo para completar a classe.class Livro:
def __init__(self, titulo, autor, isbn, ano_publicacao):
self.titulo = titulo
self.autor = autor
self.isbn = isbn
self.ano_publicacao = ano_publicacao
self.disponivel = True
def emprestar(self):
if self.disponivel:
self.disponivel = False
print(f"O livro '{self.titulo}' foi emprestado.")
else:
print(f"O livro '{self.titulo}' já está emprestado.")
def devolver(self):
self.disponivel = True
print(f"O livro '{self.titulo}' foi devolvido.")
def __del__(self):
print(f"O livro '{self.titulo}' foi removido do sistema.")
Explicação: Quando um objeto
Livro
é deletado, o método __del__
imprime uma mensagem indicando que o livro foi removido do sistema.Resposta
Aqui está a classe
Livro
completa em Python, com atributos, métodos construtor e destruidor:class Livro:
def __init__(self, titulo, autor, isbn, ano_publicacao):
self.titulo = titulo
self.autor = autor
self.isbn = isbn
self.ano_publicacao = ano_publicacao
self.disponivel = True
def emprestar(self):
if self.disponivel:
self.disponivel = False
print(f"O livro '{self.titulo}' foi emprestado.")
else:
print(f"O livro '{self.titulo}' já está emprestado.")
def devolver(self):
self.disponivel = True
print(f"O livro '{self.titulo}' foi devolvido.")
def __del__(self):
print(f"O livro '{self.titulo}' foi removido do sistema.")
Esse código define uma classe
Livro
com os atributos titulo
, autor
, isbn
, ano_publicacao
e disponivel
. Inclui métodos para emprestar e devolver o livro, além do destruidor que avisa quando o livro é removido do sistema.Exercícios relacionados
Diferencie Associação, Agregação e Composição de objetos.
Para que servem os padrões de projeto de software, no cenário de Orientação a Objetos?
O que é uma classe abstrata? Para que serve? Como implementar uma classe abstrata? Como forçar a implementação de métodos abstratos, nas classes que herdam a classe abstrata? Crie uma classe chamada Obra_de_arte, que seja abstrata e tenha o método abstrato definir_autor. Essa classe abstrata deve ser herdada pela classe criada no exercício 2 .
Descreva, em no máximo 200 palavras, o que é um computador e o que ele faz. Sublinhe os substantivos e verbos. Selecione 5 dos substantivos que você sublinhou e, para cada um, crie uma classe, liste seus atributos e comportamentos (verbos). Descreva brevemente como esses objetos interagem entre si e com outros objetos que você criou. Estes passos que você seguiu são típicos do projeto orientado a objetos.