Data atual em GregorianCalendar e Gravar objetos em um arquivo

3 respostas
kxmm

Bom pessoal, estou com dois probleminhas.

Primeiro o que creio ser mais simples:

  • Tenho uma variável do tipo GregorianCalendar e preciso fazê-la receber a data atual. Em uma outra, do mesmo tipo (GregorianCalendar), preciso setar uma data passada por parâmetro. Não sei como fazer em nenhum dos dois casos.

O segundo problema é quanto a implementação de dois métodos numa classe. A classe pertence a um programa de gerenciamento de uma biblioteca.
Preciso incrementar e decrementar a quantidade de exemplares de uma determinado livro presente no acervo.
Conto com a ajuda de vocês para implementar esses métodos.

Aqui é o exercício:

Classe Livro:

# Atributos: codLivro (int), titulo (String), autores (String, nome de todos os autores) e qtdeExemplares (int). Todos com acesso privado (private);

# Método construtor que inicializa todos os atributos através de parâmetros;

# Método construtor que inicializa os atributos codLivro, titulo e autores através de parâmetros e o atributo qtdeExemplares com zero;

# Médodos  get  e  set  para  obter  e  modificar  os  valores  dos  atributos  titulo  e autores;

# Métodos get para obter os valores dos atributos codLivro e qtdeExemplares;

# Método para incrementar a quantidade de exemplares de uma unidade;

# Método  para  decrementar  a  quantidade  de  exemplares  de  uma  unidade. Não permitir o decremento se a quantidade for igual a zero.

Segue a classe:

package biblioteca;

/**
 * @author Antonio Mendes
 * Classe que define os livros da biblioteca
 */

public class Livro {

  private int codLivro, qtdeExemplares;
  private String titulo, autores;
  
  /**
   * @param codLivro
   * @param qtdeExemplares
   * @param titulo
   * @param autores 
   */
  public Livro (int codLivro, int qtdeExemplares, String titulo, String autores){
    this.codLivro= codLivro;
    this.qtdeExemplares=qtdeExemplares;
    this.titulo=titulo;
    this.autores=autores;
  }
   /**
   * @param codLivro
   * @param titulo
   * @param autores 
   */
  public Livro (int codLivro,String titulo, String autores){
    this.codLivro= codLivro;
    this.qtdeExemplares=0;
    this.titulo=titulo;
    this.autores=autores;
  }
  
  // métodos set para titulos e autores
 
  public void setTitulo (String titulo){
    this.titulo=titulo; 
  }
   
  public void setAutores (String autores){
    this.autores=autores; 
  }
  
  // métodos get para titulos e autores
  
  public String getTitulo(){
    return this.titulo;
  }
  
  public String getAutores(){
    return this.autores;
  }
 
  // métodos get para obter código do livro e quantidade de exemplares
  
  public int getCodLivro(){
    return this.codLivro;
  }
   
  public int getQtdeExemplares(){
    return this.qtdeExemplares;
  } 
  
  // método para incrementar quantidade de exemplares de um livro
  
  public void IncQtdeExemplares (String titulo, int quantidade){
      
  }
  
  // método para decrementar quantidade de exemplares de um livro
   
  public void DecQtdeExemplares (String titulo, int quantidade){
      
  } 
   
}

3 Respostas

Rodrigo_Sasaki

Exemplo de como setar o ano pra 2011:

Calendar c = Calendar.getInstance(); //Pega a data atual c.set(Calendar.YEAR, 2011);

O resto acho que você consegue deduzir hehehe

kxmm

digaoneves:
Exemplo de como setar o ano pra 2011:

Calendar c = Calendar.getInstance(); //Pega a data atual c.set(Calendar.YEAR, 2011);

O resto acho que você consegue deduzir hehehe

Obrigado. Realmente ficou fácil deduzir quando implementei as outras classes, ficou fácil ver como fazer.

Agora estou tendo um outro probleminha:

Método para pesquisar livros por título. Parâmetro: uma string especificando
parte do título do livro. O método deve retornar uma lista com todos os livros que
contêm a string no título;

Eu o fiz assim:

public ArrayList<Livro> pesquisaTitulo(String titulo){ ArrayList<Livro> litlivros = null; for (int i=0; i < livros.size()-1; i++){ if (livros.get(i).getTitulo().equals(titulo)){ litlivros.add(livros.get(i)); } } return litlivros; }

Está certo? Porque o enunciado pede que se parte do título for igual a string, já é pra retornar. Como fiz só retorna se for igual.

kxmm

Outra dúvida é quanto aos métodos para gravar e ler objetos em um arquivo.

Fiz os métodos da seguinte forma:

//Método para gravar os dados em arquivo public void gravarDadados(Biblioteca biblioteca) throws FileNotFoundException, IOException{ ObjectOutputStream objetoOut = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("Arquivo.obj"))); objetoOut.writeObject(biblioteca); objetoOut.close(); } //Método para gravar os dados em arquivo public Biblioteca lerDados() throws FileNotFoundException, IOException, ClassNotFoundException{ ObjectInputStream objetoIn = new ObjectInputStream(new BufferedInputStream(new FileInputStream("Arquivo.obj"))); Biblioteca objeto = (Biblioteca)objetoIn.readObject(); objetoIn.close(); return (Biblioteca) objeto; }

Porém o Netbeans quis adicionar throws FileNotFoundException, IOException, ClassNotFoundException. Podem me explicar o que é?
E os métodos estão implementados corretamente?

Criado 30 de abril de 2012
Ultima resposta 1 de mai. de 2012
Respostas 3
Participantes 2