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?
Download

int