aula 11 modularização
DESCRIPTION
aula ufabcTRANSCRIPT
-
BC0505 - Processamento da InformacaoModularizacao de Codigo
Marcio K. Oikawa (Teoria)
Marco/2015
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Introducao
Estudaremos nesta aula:
O que e modularizacao?
Quais sao as vantagens de um codigo modularizado?
O que e parametrizacao?
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Introducao
Modularizacao e:
Um processo para desenvolvimento e organizacao de codigo;
Uma forma de reutilizacao de codigo;
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
O que e modularizacao?
Definicao de metodos;
Chamada de metodos;
Parametrizacao;
Escopo de variaveis;
Passagem de parametros por valor e referencia;
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Metodos em Java
A maioria das linguagens imperativas oferece formas demodularizar codigo;
Modulos sao trechos de codigo com proposito especfico,usados para melhorar a legibilidade, organizacao e reutilizacaode comandos;
E uma estrategia excelente para programar grandes sistemas;
Cada linguagem possui um termo especial para caracterizarseu modulo. Os termos mais comuns sao funcoes eprocedimentos. Em Java, o modulo e chamado metodo.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Declaracao do Metodo
A declaracao de um metodo consiste em definir um trecho decodigo que sera executado todas as vezes que o metodo forchamado.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Definicao e Chamada de Metodo
Durante o desenvolvimento de codigos durante o quadrimestre,pudemos usar (mesmo sem saber) metodos que foram uteis para odesenvolvimento de nossos trabalhos. Podemos citar alguns deles:
Math.sqrt(double): Calcula a raiz quadrada de um numero;
Math.random(): Calcula um numero aleatorio;
System.out.println(String): Exibe uma mensagem na tela;
...
O que eles tem em comum?
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Definicao e Chamada de Metodo
O que eles tem em comum?
Alguem os desenvolveu, mas voce nao precisou saber como foifeito (Encapsulamento);
Voce pode usar esses metodos varias vezes, em diferentesalgoritmos (Reutilizacao de codigo);
Eles certamente facilitaram o desenvolvimento de seusalgoritmos, deixando o seu codigo mais claro.
Chamada de Metodo
Quando o seu algoritmo usa um metodo, costumamos dizer que eleesta chamando o metodo. Sempre existe um metodo chamador eum metodo chamado.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Estrutura de um Metodo
Vamos estudar um pouco da estrutura de um metodo.
int somaInteiros ( int a, int b ){int res;res = a + b;
return res;
}
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Estrutura de um Metodo
int somaInteiros ( int a, int b ){int res;res = a + b;
return res;
}
tipo de retorno
Tipo de retorno
Alguns metodos realizam calculos, gerando um resultado final quesera usado pelo codigo que o chamou. O tipo de retorno representao tipo do dado que sera devolvido para o metodo chamador.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Estrutura de um Metodo
int somaInteiros ( int a, int b ){int res;res = a + b;
return res;
}
nome
Nome
O nome do metodo e o identificador do metodo. As regras paradefinicao de um nome sao as mesmas de variaveis e constantes.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Estrutura de um Metodo
int somaInteiros ( int a, int b){int res;res = a + b;
return res;
}
parametros
Parametros
Parametros sao essenciais para qualquer metodo. Representam osvalores de entrada que o metodo necessita para realizar suasoperacoes. Os parametros devem ser declarados no metodo comovariaveis comuns (indicando seu tipo). A ordem os parametros esua quantidade devem ser respeitados todas as vezes que metodofor chamado.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Estrutura de um Metodo
int somaInteiros ( int a, int b ){int res;res = a + b;
return res;
}
codigo
Codigo
Sao os comandos que realizam o processamento das informacoesdentro do metodo.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Estrutura de um Metodo
int somaInteiros ( int a, int b ){int res;res = a + b;
return res;
}
retorno
Retorno
O retorno e uma parte essencial da estrutura do metodo. Aposfinalizado o processamento, o retorno devera devolver o resultadofinal do processamento para o codigo chamador. O valor retornadodeve ser do mesmo tipo de retorno.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Estrutura de um Metodo
...int x, y;x = 23;y = -4;
int k = somaInteiros(x, y);
System.out.println(k);...
int somaInteiros (int a, int b){int res;res = a + b;return res;
}res = 19
somaInteiros(23, -4)
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Exemplo
Vamos criar uma classe com varios metodos, que realizamordenacao de um vetor, tentando compara-los em termos deeficiencia.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Exemplo
O primeiro algoritmo que faremos e o Bubble Sort. Antes, poremvamos escrever um metodo para realizar a troca de valores entreduas variaveis, que e uma operacao que usamos em varios osalgoritmos.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Bubble Sort
Vamos tentar simplificar o Bubble Sort, criando um metodo querealiza troca de valores entre variaveis.int tmp;
for (int i=0; i
-
Bubble Sort
Vamos tentar simplificar o Bubble Sort, criando um metodo querealiza troca de valores entre variaveis.int tmp;
for (int i=0; i
-
Passagem de parametros
void troca (int x, int y){
int tmp;
tmp = x;
x = y;
y = tmp;
return;
}
Passagem de parametros
Este codigo funciona para o Bubblesort?
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Passagem de parametros
Qual problema apresenta o codigo do metodo que trocavalores?
Como resolver?
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Passagem de parametros
void troca (int V, int x, int y){
//x e y agora sao ndices do vetor V
int tmp;
tmp = V[x];
V[x] = V[y];
V[y] = tmp;
return;
}
Passagem de parametros
Por que o comportamento e diferente?
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Passagem de parametros
Existem basicamente dois sistemas de passagem de parametros:
Passagem de parametros por valor: Um metodo recebeuma copia do valor de uma variavel, de modo que alteracoesocorridas no metodo nao sao propagadas para a variaveloriginal.
Passagem de parametros por referencia: Um metodorecebe o endereco de memoria da variavel (ou seja, a propriavariavel), de modo que alteracoes ocorridas no metodo saopropagadas para a variavel original.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Passagem de parametros
Em Java, o sistema de passagem de parametros e definido pelotipo da variavel:
Variaveis de tipos primitivos sao passados por valor;
Variaveis de tipos classe (objetos de classe) sao passados porreferencia.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Exerccios
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Exerccio 1
Construa um modulo que verifica se um numero e, ou nao, primo.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao
-
Exerccio 2
Construa modulos que recebem um vetor e o ordenam. Escolha umdos algoritmos de ordenacao ja vistos em aula.
Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao