Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Passagem de Parâmetros e Modularização com Vetores Profa. Dra. Juliana Cristina Braga Centro de Matemática, Computação e Cognição Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Objetivo da Aula Entender a diferença entre a passagem de parâmetro de tipos primitivos para tipos de referência em JAVA Entender como passar vetores como parâmetros de métodos em JAVA Entender como retornar vetores de dentro de um método em JAVA Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Roteiro da Aula Tido de dados (recordar) Passagem de parâmetro de tipos primitivos Passagem de parâmetro de tipos de referência Exemplo de vetores passados como parâmetros Exemplo do retorno de vetores Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Tipo de Dados em JAVA Tipo primitivo: Englobam os tipos: byte, short, int, long, char, float, double e boolean. Tipo referência: englobam os tipos compostos como vetores E String Existem outros, mas para o escopo de nossa disciplina: interessa String e Vetores Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Tipo de Dados em JAVA Tipo primitivo: Uma variável de tipo primitivo recebe um valor primitivo, este valor é armazenado diretamente no espaço de memória alocado para a variável. Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Tipo de Dados em JAVA public class Programa { public static void main() { //variáveis primitivas int a = 10; byte b = 1; } } Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Tipo de Dados em JAVA Tipo referência: na área de memória da variável é armazenado um ponteiro para a área de memória que está o Objeto (ex: String , Vetores e Matrizes) Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Tipo de Dados em JAVA public class Programa { public static void main() { //variáveis primitivas int v[] = new int[3]; v[0] = 1; v[1] = 2; v[2] = 4; } } Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Tipo de Dados em JAVA Observe bem a diferença!!! Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Tipo de Dados em JAVA Essa distinção, influencia na passagem de parâmetros dos métodos em JAVA Vejam os exemplos Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Passagem de parâmetros em JAVA Para os tipos primitivos num = a Qual o valor de a? a continua sendo ZERO! Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Para os tipos de referência vetor[] aponta Para o mesmo Lugar que V[] Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores O vetor do programa principal e o vetor do parâmetro da função, apontam para o Mesmo lugar na memória. A modificação do parâmetro afeta a variável. Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Modularização com vetores Vetores são tipos de referência Agora que você já entendeu o comportamento da passagem dos tipos de referência, vamos partir para os exemplos! Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Exemplo de Modularização com Vetores MÓDULO PRINCIPAL Contante Global Reusando ImprimeVetor Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Exemplo de Modularização com Vetores MÉTODO LeVetorInt LeVetorInt: le vetores de qualquer tamanho, recebendo como parâmetro um vetor de inteiro. Depende do tipo do vetor, neste caso, somente inteiros. Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Exemplo de Modularização com Vetores MÉTODO ImprimeVetor ImprimeVetor: imprime vetor de qualquer tamanho, recebendo como parâmetro um vetor de qualquer tipo (nome do vetor) Independe do tipo de vetor. Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Exemplo de Modularização com Vetores MÉTODO CopiarVetorInt CopiarVetorInt: copia os valores de dois vetores de mesmo tamanho. Copia os valores do primeiro Vetor para o segundo vetor. Depende do tipo do vetor e da ordem da passagem do vetor O tamanho também é importante. Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Retornando um vetor dentro de um método Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Retornando um vetor dentro de um método Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores Coisas para não esquecer Utilize a propriedade length para saber o tamanho de um vetor em java (A.length) Os tipos primitivos são: byte, short, int, long, char, float, double e booleano . Uma variável de tipo primitivo recebe um valor primitivo, este valor é armazenado diretamente no espaço de memória alocado para a variável. Bacharelado em Ciência e Tecnologia Processamento da Informação Passagem de Parâmetros e Modularização com Vetores O vetor, por ser um tipo não primitivo, recebe um tratamento diferente ao ser passado por parâmetro. Sendo assim, seus valores são alterado juntamente com as variáveis locais do método. O mesmo acontece com uma string. Podemos retornar um vetor dentro de uma função, essa é uma forma de retornar vários valores em uma única variável