Os métodos podem receber parâmetros do tipo array. A passagem de arrays para métodos é bastante eficiente em java, pois sendo as variáveis do tipo array referenciadas, isso significa que não há nenhuma cópia de dados na memória. O que é passado para o método é o endereço de memória onde os dados do array estão armazenados, tornando esse processo muito mais rápido e eficiente. Para exemplificar, vamos criar no mesmo projeto anterior a classe biblioteca, conforme abaixo.
Exemplo_2_2_003: exemplo de passagem de array como parâmetro para a função.
/** * A instância dessa classe armazena uma coleção de livros * @autor Andrei * */ public class biblioteca { livro[] livros; int quantidade; /** * Método construtor da classe * * @param array de livros a serem armazenados * */ public biblioteca(livro[] livros){ this.quantidade=livros.length; this.livros = new livro[this.quantidade]; for(int i=0;i<this.quantidade;i++){ this.livros[i]=new livro(livros[i].getTitulo(),livros[i].getAutor(),livros[i].getData(),livros[i].getEditora()); } } /** * Imprime todos os livros da biblioteca * * @param não recebe parâmetros * @return não possui valor de retorno * */ public void imprimeTodos(){ for(int i=0;i<livros.length;i++){ System.out.println( "Título: " + livros[i].getTitulo() ); System.out.println( "Autor: " + livros[i].getAutor() ); System.out.println( "Data: " + livros[i].getData() ); System.out.println( "Editora: " + livros[i].getEditora() ); System.out.println( "---------------------------------" ); } } public static void main(String[] args) { livro[] livros = new livro[10]; livros[0] = new livro ("Java Para Iniciantes", "Luis Carlos Moreira da Costa",1998, "Ciencia Moderna"); livros[1] = new livro ("Livro - Programação em Java: Curso Completo", "Pedro Coelho",2014, "FCA"); livros[2] = new livro ("Livro - Java Para Iniciantes", "Herbert Schildt",2013, "Bookman"); livros[3] = new livro ("Programação com Java: Uma Introdução Abrangente", "Herbert Schildt/Dale Skrien",2013, "Bookman"); livros[4] = new livro ("Use a Cabeça! Java", "Kathgy Sierra & Bert Bates",2007, "Alta Books"); livros[5] = new livro ("Programação Java para a Web", "Décio Heinzelmann Luckow",2010, "Novatec"); livros[6] = new livro ("Programação de Computadores em Java", "Rui Rossi dos Santos",2014, "Nova Terra"); livros[7] = new livro ("Java 7 - Ensino Didático", "Sérgio Furgeri",2010, "Erica"); livros[8] = new livro ("Java", "Rui Rossis",2013, "Nova Terra"); livros[9] = new livro ("Java 7", "Sérgio Furgeri",2008, "Erica"); biblioteca biblio = new biblioteca(livros); biblio.imprimeTodos(); } }
No exemplo 2_2_003 o construtor recebe como parâmetro um array de livros que serão armazenados na instância do objeto que chamamos de biblio (linha 59).