Foro de elhacker.net

Programación => Java => Mensaje iniciado por: alejogzn en 4 Abril 2015, 18:20 pm



Título: Ayuda ejercicio Java POO
Publicado por: alejogzn en 4 Abril 2015, 18:20 pm
Buen día a todos, estoy en clases de POO en Java, tengo el siguiente ejercicio:



Título: Re: Ayuda ejercicio Java POO
Publicado por: Usuario Invitado en 4 Abril 2015, 20:16 pm
¿Solamente pones un POJO? Trata de analizar el enunciado. Primero identifica entidades:

  • Libro (nombre, autor o autores, año de edición, ¿edición de lujo?)
  • Autor (nombres)
  • Colección (mas de 1 libro)

Dado lo anterior deducimos que:

Autor depende de Libro. Por lo que un Libro no puede existir sin un Autor. Así mismo, Un libro puede tener uno o más autores[/b]:

Código
  1. public class Author {
  2. private Integer id; // puede servir de algo
  3. private String names;
  4.  
  5. public Author() {
  6.  
  7. }
  8. public Author(Integer id, String names) {
  9. this.id = id;
  10. this.names = names;
  11. }
  12. public Integer getId() {
  13. return id;
  14. }
  15. public void setId(Integer id) {
  16. this.id = id;
  17. }
  18. public String getNames() {
  19. return names;
  20. }
  21. public void setNames(String names) {
  22. this.names = names;
  23. }
  24. }

Código
  1. public class Book {
  2. private String isbn;
  3. private String name;
  4. private List<Author> authors;
  5. private Date editionDate;
  6. private Boolean deluxeEdition;
  7.  
  8. public Book() {
  9.  
  10. }
  11. public Book(String isbn, String name, List<Author> authors, Date editionDate, Boolean deluxeEdition) {
  12. this.isbn = isbn;
  13. this.name = name;
  14. this.authors = authors;
  15. this.editionDate = editionDate;
  16. this.deluxeEdition = deluxeEdition;
  17. }
  18. public String getIsbn() {
  19. return isbn;
  20. }
  21. public void setIsbn(String isbn) {
  22. this.isbn = isbn;
  23. }
  24. public String getName() {
  25. return name;
  26. }
  27. public void setName(String name) {
  28. this.name = name;
  29. }
  30. public List<Author> getAuthors() {
  31. return authors;
  32. }
  33. public void setAuthors(List<Author> authors) {
  34. this.authors = authors;
  35. }
  36. public Date getEditionDate() {
  37. return date;
  38. }
  39. public void setEditionDate(Date editionDate) {
  40. this.editionDate = editionDate;
  41. }
  42. public Boolean isdDeluxeEdition() {
  43. return deluxeEdition;
  44. }
  45. public void setDeluxeEdition(Boolean deluxeEdition) {
  46. this.deluxeEdition = deluxeEdition;
  47. }
  48. }

Y la colección:

Código
  1. public class Collection {
  2. private final NavigableMap<Integer, Book> collection = new TreeMap<>();
  3.  
  4. public Book add(Book book) {
  5.                Integer newId = null; // numero que ocupa el libro en la coleccion
  6. if(collection.isEmpty()) { newId = 1; }
  7.                else { newId = collection.lastKey(); }
  8. return collection.put(newId, book);
  9. }
  10. public Book remove(Integer id) {
  11. return collection.remove(id);
  12. }
  13. public Book get(Integer id) {
  14. return collection.get(id);
  15. }
  16. public void showAll() {
  17. for(Entry.Map<Integer, Book> entry : collection.entrySet()) {
  18. System.out.println("Posici&#243;n del libro: "+entry.getKey());
  19. System.out.println("Nombre del libro: "entry.getValue().getName());
  20. }
  21. }
  22. }


Saludos.


PD: Si vas a colocar código otra vez, utiliza las etiquetas GeSHi. Si no sabes que son, lee las reglas del foro.


Título: Re: Ayuda ejercicio Java POO
Publicado por: alejogzn en 5 Abril 2015, 18:40 pm
Muchas gracias por tu respuesta,


Título: Re: Ayuda ejercicio Java POO
Publicado por: alejogzn en 5 Abril 2015, 19:30 pm
Gacias, estoy terminando y hay una linea que no me ha dejado al compilar, me sigue saliendo error y no se por que es:

public void showAll() {
        for(Map.Entry<Integer, Libros> entry : coleccion.entrySet()) {
            System.out.println("Posicion del libro: "+entry.getKey());
            System.out.println("Nombre del libro: "+entry.getValue().getNombre());
        }


Me sigue saliendo "package Map does  not exist"


Título: Re: Ayuda ejercicio Java POO
Publicado por: Usuario Invitado en 5 Abril 2015, 19:48 pm
Map.Entry<K,V> es una interface parte de Map. Lo que debes hacer es importar la interface Map y la clase HashMap así:

Código
  1. import java.util.Map;
  2. import java.util.HashMap;


Saludos.


Título: Re: Ayuda ejercicio Java POO
Publicado por: alejogzn en 5 Abril 2015, 20:29 pm
1


Título: Re: Ayuda ejercicio Java POO
Publicado por: Usuario Invitado en 5 Abril 2015, 21:02 pm
1) Por segunda vez te digo, si vas a publicar código utiliza las etiquetas GeSHi. Caso contrario, reportaré el tema a los moderadores.

2) No sé de donde te salen esos errores. A mí me compila perfectamente:

Código
  1. import java.util.NavigableMap;
  2. import java.util.TreeMap;
  3. import java.util.Map;
  4. public class Collection {
  5.    private NavigableMap<Integer, Book> collection = new TreeMap <>();
  6.  
  7.    public Book add(Book book){
  8.        Integer newId = (collection.isEmpty()) ? 1 : collection.lastKey();
  9.        return collection.put(newId, book);
  10.    }
  11.    public Book remove(Integer id) {
  12.        return collection.remove(id);
  13.    }
  14.    public Book get(Integer id) {
  15.        return collection.get(id);
  16.    }
  17.        public void showAll() {
  18.            for(Map.Entry<Integer, Book> entry : collection.entrySet()) {
  19.                System.out.println("Posicion del libro: "+entry.getKey());
  20.                System.out.println("Nombre del libro: "+entry.getValue());
  21.            }
  22.    }
  23. }