Aula Prática 5 05/05/2010 //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o resultado, caso haja retorno. return resultado; } //Exemplo public int quadrado(int x){ int resultado = x*x; return resultado; } //Exemplo void int x = 10; public void incrementarX (){ //Todas as modificações necessárias são feitas //no próprio corpo. //Não há necessidade de nenhum retorno. x = x + 1; } int saldo = 100; public void debitar(int valor){ if(saldo – valor >= 0){ saldo = saldo – valor; } } //Exemplo void public double distancia(int x1, int y1, int x2, int y2){ double resultado = Math.sqrt(quadrado(subtrair(x1,x2)) + quadrado(subtrair(y1,y2))); return resultado; } //Escorpo devariáveis int y = 10; public int funcao(int a, int b){ a = a – 1; int c = a + b; if ( c > y ){ int k = quadrado(c); if ( k > y ){ for(int i = 0; i < k ; i++){ c = c + i; } } } return c; } //Em quais partes do método (y) é visível? // E (a), (c), (k), (i)? //Recursão //Toda definição recursiva deve ter uma parte não recursiva. //Caso ela não tivesse, a recursão não teria fim. //A parte não recursiva é chamada de caso base. public int fatorial(int n){ //Caso base if (n == 1) return 1; //Caso recursivo return n * fatorial(n – 1); } //Todo método que chama a si mesmo em seu corpo é dito //recursivo public int somatorio(int n){ //Caso base if (n == 1) return 1; //Caso recursivo return n + somatorio(n – 1); } //f(0) = 1 //f(1) = 1 //f(n) = f(n – 1) + f(n – 2) public int fibinacci(int n){ //Casos bases (pode ser mais que um) if (n == 0 | | n == 1) return 1; //Caso recursivo return fibinacci(n – 1) + fibinacci(n – 2); } //Aliasing e passagem por referência class Bola { String cor; public Bola (String cor){ this.cor = cor; } } class Pintor { public void pintarDeAzul(Bola bola){ bola.cor = “Azul”; } } public static void main(String []args){ Pintor pintor = new Pintor(); Bola bola1 = new Bola(“Verde”); Bola bola2 = new Bola(“Rosa”); Bola bola3 = new Bola(“Cinza”); Bola bola4 = new Bola(“Vermelho”); bola4 = bola3; bola3 = bola2; pintor.pintarDeAzul(bola1); pintor.pintarDeAzul(bola2); System.out.println(bola1.cor); System.out.println(bola2.cor); System.out.println(bola3.cor); System.out.println(bola4.cor); } //Azul //Azul, porque? //Azul //Cinza, porque?