deixei um pouco mais complicado
package br.com.nadson.desafiosc1.modelo;
public class Livro {
private String titulo;
private String autor;
private int paginas;
private double preco;
private Categorias categoria;
public Livro(String titulo, String autor, char tipo) {
this.titulo = titulo;
this.autor = autor;
this.categoria = validarCategoria(tipo);
}
public void setPaginas(int paginas) {
this.paginas = paginas;
}
public void setPreco(double preco) {
this.preco = preco;
}
private Categorias validarCategoria(char tipo) {
tipo = Character.toUpperCase(tipo);
return switch (tipo) {
case 'F' -> Categorias.FICCAO;
case 'N' -> Categorias.NAO_FICCAO;
case 'T' -> Categorias.TECNOLOGIA;
case 'H' -> Categorias.HISTORIA;
default -> throw new IllegalArgumentException("Categoria inválida. Use F, N, T ou H.");
};
}
@Override
public String toString() {
return String.format(
"Título: %s%n" +
"Autor: %s%n" +
"Páginas: %d%n" +
"Preço: R$ %.2f%n" +
"Categoria: %s",
titulo,
autor,
paginas,
preco,
categoria.getDescricao());
}
}
criei uma enum pra facilitar na verificação, essa classe foi reutilizada em outro desafio
package br.com.nadson.desafiosc1.modelo;
public enum Categorias {
FICCAO("Ficção"),
NAO_FICCAO("Não-ficção"),
TECNOLOGIA("Tecnologia"),
HISTORIA("História"),
//----------------------------------------Categoria de produtos-----------------------------------------
ECONOMICO("Economico"),
INTERMEDIARIO("INtermediario"),
PREMIUM("Premium");
private final String descricao;
Categorias(String descricao) {
this.descricao = descricao;
}
public String getDescricao() {
return descricao;
}
}
e a classe pricipal ficou assim
package br.com.nadson.desafiosc1.pricipal;
import br.com.nadson.desafiosc1.modelo.Livro;
public class CadastroDeLivros {
public static void main(String[] args) {
Livro livro=new Livro("O Pequeno Príncipe", "Antoine de Saint-Exupéry", 'f');
livro.setPaginas(96);
livro.setPreco(39.9);
System.out.println(livro);
}
}