MÉTODOS E PACOTES

Propaganda
Material de Aulas Java-3
MÉTODOS E PACOTES
Vimos métodos como main(), parseInt(), parseFloat(), parseDouble(), readLine() e outros,
que tornam nosso trabalho bastante versátil.
1 – Métodos Definidos pelo Programador
O programa a seguir mostra o funcionamento de métodos definidos pelo programador:
import java.io.*;
class C08EX01 {
public static void main(String args[]) {
System.out.println("Execucao do programa principal - 1");
SubRotina();
System.out.println("Execucao do programa principal - 2");
}
public static void SubRotina() {
System.out.println("Execucao da sub-rotina");
}
}
Sintaxe:
[qualificador] [retorno] [nome(<parâmetros>)] {
<corpo do código do método>
<return (<valor>)>
}
Qualificador
Prof. Walcyr
Retorno
Nome
Parâmetro
1
Material de Aulas Java-3
O programa a seguir que simula uma calculadora, foi desenvolvido utilizando métodos
desenvolvidos pelo programador:
// C08EX02.java
// Programa Calculadora
import java.io.*;
import java.text.*;
class C08EX02 {
public static void main(String args[]) {
byte OPCAO = 0;
// Programa principal
while (OPCAO != 5) {
System.out.println();
System.out.println();
System.out.println("------------------------");
System.out.println(" Programa Calculadora ");
System.out.println(" Menu Principal ");
System.out.println("------------------------");
System.out.println();
System.out.println("[1] ............. Adicao");
System.out.println("[2] .......... Subtracao");
System.out.println("[3] ...... Multiplicacao");
System.out.println("[4] ............ Divisao");
System.out.println("[5] .... Fim de Programa");
System.out.println();
System.out.print("Escolha uma opcao: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
OPCAO = Byte.parseByte(br.readLine()); }
catch (Exception e) {
OPCAO = 0;
}
if (OPCAO != 5 || OPCAO != 0) {
switch (OPCAO) {
case 1: rotadicao();
break;
case 2: rotsubtracao(); break;
case 3: rotmultiplicacao(); break;
case 4: rotdivisao();
break;
}
}
Prof. Walcyr
2
Material de Aulas Java-3
}
}
// Modulo de Adicao
public static void rotadicao() {
double R, A, B;
DecimalFormat df = new DecimalFormat();
System.out.println();
System.out.println();
System.out.println("Rotina de Adicao");
System.out.println("----------------");
System.out.println();
System.out.print("Entre um valor para a variavel [A]: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
A = Double.parseDouble(br.readLine()); }
catch (Exception e) {
A = 0;
}
System.out.print("Entre um valor para a variavel [B]: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
B = Double.parseDouble(br.readLine()); }
catch (Exception e) {
B = 0;
}
R = A + B;
System.out.println();
df.applyPattern("0.00");
System.out.println("O resultado entre A e B = " + df.format(R));
pausa();
}
// Modulo de Subtracao
public static void rotsubtracao() {
double R, A, B;
DecimalFormat df = new DecimalFormat();
System.out.println();
System.out.println();
Prof. Walcyr
3
Material de Aulas Java-3
System.out.println("Rotina de Subtracao");
System.out.println("-------------------");
System.out.println();
System.out.print("Entre um valor para a variavel [A]: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
A = Double.parseDouble(br.readLine()); }
catch (Exception e) {
A = 0;
}
System.out.print("Entre um valor para a variavel [B]: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
B = Double.parseDouble(br.readLine()); }
catch (Exception e) {
B = 0;
}
R = A - B;
System.out.println();
df.applyPattern("0.00");
System.out.println("O resultado entre A e B = " + df.format(R));
pausa();
}
// Modulo de Multiplicacao
public static void rotmultiplicacao() {
double R, A, B;
DecimalFormat df = new DecimalFormat();
System.out.println();
System.out.println();
System.out.println("Rotina de Multiplicacao");
System.out.println("-----------------------");
System.out.println();
System.out.print("Entre um valor para a variavel [A]: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
A = Double.parseDouble(br.readLine()); }
catch (Exception e) {
A = 0;
}
System.out.print("Entre um valor para a variavel [B]: ");
Prof. Walcyr
4
Material de Aulas Java-3
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
B = Double.parseDouble(br.readLine()); }
catch (Exception e) {
B = 0;
}
R = A * B;
System.out.println();
df.applyPattern("0.00");
System.out.println("O resultado entre A e B = " + df.format(R));
pausa();
}
// Modulo de Divisao
public static void rotdivisao() {
double R, A, B;
DecimalFormat df = new DecimalFormat();
System.out.println();
System.out.println();
System.out.println("Rotina de Divisao");
System.out.println("-----------------");
System.out.println();
System.out.print("Entre um valor para a variavel [A]: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
A = Double.parseDouble(br.readLine()); }
catch (Exception e) {
A = 0;
}
System.out.print("Entre um valor para a variavel [B]: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
B = Double.parseDouble(br.readLine()); }
catch (Exception e) {
B = 0;
}
if (B == 0) {
System.out.println();
System.out.println("Erro de divisao"); }
else {
R = A / B;
Prof. Walcyr
5
Material de Aulas Java-3
System.out.println();
df.applyPattern("0.00");
System.out.println("O resultado entre A e B = " + df.format(R));
pausa();
}
}
// Modulo de Pausa
public static void pausa() {
byte ENTER;
System.out.println();
System.out.print("Tecle <ENTER> para voltar ao menu: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
ENTER = Byte.parseByte(br.readLine()); }
catch (Exception e) {
ENTER = 0;
}
}
}
Prof. Walcyr
6
Material de Aulas Java-3
Prof. Walcyr
7
Material de Aulas Java-3
2 - Passagem de Parâmetro
O programa de cálculo da fatorial foi elaborado agora com o uso de passagem de parâmetro.
import java.io.*;
class C08EX03 {
public static void main(String args[]) {
byte X;
System.out.println();
System.out.println("-------------------------");
System.out.println(" Programa Fatorial ");
System.out.println("-------------------------");
System.out.println();
System.out.print("Entre um valor inteiro (de 0 ate 25): ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
X = Byte.parseByte(br.readLine()); }
catch (Exception e) {
X = 0;
}
System.out.println();
Prof. Walcyr
8
Material de Aulas Java-3
fatorial(X);
System.out.println();
}
public static void fatorial(byte N) {
long FAT = 1;
if (N == 0)
FAT = 0;
else
for (int I = 1; I <= N; I++)
FAT *= I;
System.out.println("Fatorial de " + N + " = " + FAT);
}
}
O mesmo programa poderia ser escrito com a passagem de parâmetro para fora do método
chamado.
import java.io.*;
class C08EX04 {
public static void main(String args[]) {
Prof. Walcyr
9
Material de Aulas Java-3
byte X;
long R;
System.out.println();
System.out.println("-------------------------");
System.out.println(" Programa Fatorial ");
System.out.println("-------------------------");
System.out.println();
System.out.print("Entre um valor inteiro (de 0 ate 25): ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
X = Byte.parseByte(br.readLine()); }
catch (Exception e) {
X = 0;
}
System.out.println();
R = fatorial(X);
System.out.println();
System.out.println("Fatorial de " + X + " = " + R);
}
public static long fatorial(byte N) {
long FAT = 1;
if (N == 0)
FAT = 0;
else
for (int I = 1; I <= N; I++)
FAT *= I;
return(FAT);
}
}
Prof. Walcyr
10
Material de Aulas Java-3
3 – Métodos de Classes Externas
O programa abaixo usa o programa que foi desenvolvido anteriormente C08EX04 para
obter o resultado.
import java.io.*;
class C08EX05 {
public static void main(String args[]) {
byte X;
long R;
System.out.println();
System.out.println("-------------------------");
System.out.println(" Programa Fatorial ");
System.out.println("-------------------------");
System.out.println();
System.out.print("Entre um valor inteiro (de 0 ate 25): ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
X = Byte.parseByte(br.readLine()); }
catch (Exception e) {
Prof. Walcyr
11
Material de Aulas Java-3
X = 0;
}
System.out.println();
R = C08EX04.fatorial(X);
System.out.println();
System.out.println("Fatorial de " + X + " = " + R);
}
}
Prof. Walcyr
12
Download