Abstração Para Ocultar Complexidades
Suponhamos que você quer escrever um programa que irá computar a soma entre todos os números entre 10 e 20.
1 2 3 4 5 6 7 |
int soma = 0; int contador = 10; while (contador <= 20) { soma = soma + contador; contador = contador + 1; } System.out.println(soma); |
Esse código irá somar 10 + 11 + 12 + … + 20 e imprimir 165. Suponhamos que você quer computar a soma de todos os inteiros entre 40 e 60.
1 2 3 4 5 6 7 |
int soma = 0; int contador = 40; while (contador <= 60) { soma = soma + contador; contador = contador + 1; } System.out.println(soma); |
A soma de todos os inteiros entre 40 e 60 irá imprimir 1050. Veja que há similaridades e diferenças entre os dois códigos. A lógica é a mesma em ambas.
Contudo, o intervalo entre os números é diferente. Isso significa que a lógica é a mesma, e sendo assim, você pode evitar escrever o código duas vezes.
1 2 3 4 5 6 7 |
int soma = 0; int contador = menorNumero; while (contador <= maiorNumero) { soma = soma + contador; contador = contador + 1; } System.out.println(soma); |
Agora os valores de menorNumero e maiorNumero não são conhecidos, isso significa que você fez a abstração do processo. Para utilizar essa nova forma esses números devem vir de algum lugar, geralmente fazemos um método para recebê-los.
1 2 3 4 5 6 7 8 9 |
int somaDoIntervaloEntreOsDoisNumeros (int menorNumero, int maiorNumero) { int soma = 0; int contador = menorNumero; while (contador <= maiorNumero) { soma = soma + contador; contador = contador + 1; } retorno soma; } |
O nome do método é somaDoIntervaloEntreOsDoisNumeros. O método tem um tipo de retorno que está sinalizado antes do nome do método, ele é o resultado da computação. O método recebe dois parâmetros que estão identificados com o tipo.
Para chamar um método passando os números 10 e 20, fica dessa maneira:
1 2 |
int s1 = somaDoIntervaloEntreOsDoisNumeros(10, 20); System.out.println(s1); // saída será 165 |
A chamada do outro método fica dessa maneira:
1 2 |
int s2 = somaDoIntervaloEntreOsDoisNumeros(40, 60); System.out.println(s2); // saída será 1050 |
Dessa maneira fizemos o que é chamado de abstração da parametrização, porque não sabemos os números que serão passados nos parâmetros.
No mundo da programação é comum você precisar utilizar métodos que você não criou ou outras pessoas utilizar métodos que você criou.
Sendo assim, você precisa documentar o que o método faz para que outros programadores saibam como utilizar. No Java tem uma marcação para criar a documentação que produz o Javadoc.
Você deve escrever a documentação do método entre as marcações /** escreve a documentação */. O Javadoc gera uma documentação no formato html que é parecido com a documentação Java.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/** Computa e retorna a soma de todos os inteiros entre dois números inteiros que são especificados pelos parâmetros: menorNumero e maiorNumero. O parâmetro menorNumero deve ser menor ou igual ao parâmetro maiorNumero. Se a soma dos inteiros entre menorNumero e maiorNumero ultrapassar o limite do tipo int, o resultado não será definido. @param menorNumero é o início da contagem @param maiorNumero é o fim da contagem @return é a soma de todos os inteiros entre o menorNumero (inclusivo) e o maiorNumero (inclusivo) */ public static int somaDoIntervaloEntreOsDoisNumeros(int menorNumero, int maiorNumero) { int soma = 0; int Contador = menorNumero; while (contador <= maiorNumero) { soma = soma + contador; contador = contador + 1; } return soma; } |
Fonte: Beginning Java 9 Fundamentals: Arrays, Objects, Modules, JShell, and Regular Expressions (English Edition)
Deixe um comentário