Baixe o app para aproveitar ainda mais
Prévia do material em texto
© Ricardo Massa e Sérgio Soares 1 Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669 Passagem de parâmetros, recursão e escopo de variáveis AULA 08 Introdução a Programação – IF669 http://www.cin.ufpe.br/~if669 c == null ? Conta c; c = new Conta("1287",0); c.getSaldo(); c envia a mensagem getSaldo() ao objeto referenciado pela variável c creditar Número Saldo "123-x" 354,78 dedbtar Conta a = new Conta("123-4",34); Conta b; b = a; b.creditar(100); System.out.println(a.getSaldo()); a e b passam a referenciar o mesmo objeto qualquer efeito via b é refletido via a A avaliação de uma expressão é feita da esquerda para a direita não altera o valor de y © Ricardo Massa e Sérgio Soares 2 Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669 altera o estado do objeto referenciado por c não altera o valor de c © Ricardo Massa e Sérgio Soares 3 Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669 public class FibonacciRecursivo { public static int fib(int m) { if (m == 0 || m == 1) { return 1; } else { return fib(m - 1) + fib(m - 2); } } public static void main(String[] args) { int n,f; System.out.println("Entre com um número"); n = Util.readInt(); f = fib(n); System.out.println("fib(" + n + ") = " + f); } } public int produto(int a, int b) { int resposta = 0; if (a > 0) { resposta = b + produto(a-1, b); } return resposta; } while(b) { p(); } public void m_rec() { if(b) { p(); m_rec(); } } public class Teste public int m() { int a = 0; return a + 1; } public void p() { a = 8; } } ERRO: a variável a só existe no método onde foi declarada public class Teste private int a; public int m() { int a = 0; return a + 1; } public void p() { a = 8; } } Aqui é o atributo a Aqui é a variável a © Ricardo Massa e Sérgio Soares 4 Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669 int a = 1; for ( int b = 0; b < 3; b++){ int c = 1; for ( int d = 0; d <3; d++){ if (c < 3) c++; } System.out.print(c); System.out.println(b); } a = c; // ERROR! c is out of scope a a abc abc abcd abcd public int fatorial(int n) { int resposta = 1; if (n > 0) { resposta = n * fatorial(n-1); } return resposta; } Não pode usar *, logo use o método criado no Exercício 2
Compartilhar