Java5

3,045 views
2,864 views

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,045
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
246
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Java5

  1. 1. Linguagens e Técnicas de Programação - JAVA José Marcos Barbosa da Silveira [email_address]
  2. 2. Criação de Métodos em JAVA <ul><li>Objetivos deste capítulo </li></ul><ul><li>Identificar os principais tipos de métodos usados em Java; </li></ul><ul><li>Levar o aluno a compreender as vantagens de uso dos métodos; </li></ul><ul><li>Introduzir o conceito de modularidade a partir da criação de métodos; </li></ul><ul><li>Fornecer subsídios para que o aluno possa criar seus próprios métodos; </li></ul><ul><li>Descrever os mecanismos necessários para a troca de dados entre os métodos. </li></ul>
  3. 3. Criação de Métodos em JAVA <ul><li>Até agora, em todos os exemplos, sempre foi declarado apenas o método main(). Este capítulo demostrará os principais tipos de métodos em Java. </li></ul><ul><li>Métodos são trechos de programas que recebem um determinado nome e podem ser chamados várias vezes durante a execução de um programa. </li></ul><ul><li>Métodos que não retornam argumentos </li></ul><ul><li>Sintaxe : </li></ul><ul><li>qualificadores tipo-do-retorno nome-do-método() em que: </li></ul><ul><li>Qualificador - public e static; </li></ul><ul><li>Tipo-de-retorno - refere-se ao tipo de dado retornado pelo método. </li></ul><ul><li>Nome-do-método - pode ser qualquer palavra, desde que iniciada com uma letra. Como convenção o nome de um método deve sempre começar com letra minúscula, se o nome for composto, a primeira letra da palavra composta deverá ser maiúscula. </li></ul><ul><li>Ex : imprime, imprimeFrase, graveArquivotexto, etc. </li></ul>
  4. 4. Criação de Métodos em JAVA (cont.) <ul><li>Exemplo: </li></ul><ul><li>class Exemplo1{ </li></ul><ul><li>public static void main(String args[]){ </li></ul><ul><li>limpaTela(); </li></ul><ul><li>imprime(); </li></ul><ul><li>} </li></ul><ul><li>public static void imprime(){ </li></ul><ul><li>System.out.println(&quot;Aprendendo metodos em Java&quot;); </li></ul><ul><li>} </li></ul><ul><li>public static void limpaTela(){ </li></ul><ul><li>for(int i=1;i<=25;i++) </li></ul><ul><li> System.out.println(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  5. 5. Criação de Métodos em JAVA (cont.) <ul><li>Métodos que recebem argumentos </li></ul><ul><li>Sintaxe: </li></ul><ul><li>qualificadores tipo-do-retorno nome-do-método (tipo variável) </li></ul><ul><li>Exemplo: </li></ul><ul><li>class Exemplo2{ </li></ul><ul><li>public static void main(String args[]){ </li></ul><ul><li>limpaTela(); </li></ul><ul><li>String frase1=&quot;Sou Feliz &quot;; </li></ul><ul><li>String frase2=&quot;porque Deus me ama!&quot;; </li></ul><ul><li>tela(frase1); </li></ul><ul><li>tela(frase2); </li></ul><ul><li>} </li></ul><ul><li>public static void tela(String s){ </li></ul><ul><li>System.out.println(s); </li></ul><ul><li>} </li></ul><ul><li>public static void limpaTela(){ </li></ul><ul><li>for(int i=1;i<=25;i++) </li></ul><ul><li> System.out.println(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  6. 6. Criação de Métodos em JAVA (cont.) <ul><li>Métodos que retornam argumentos </li></ul><ul><li>Sintaxe : </li></ul><ul><li>qualificadores tipo-do-retorno nome-do-método (tipo variável) </li></ul><ul><li>Exemplo : </li></ul><ul><li>class Exemplo3{ </li></ul><ul><li>public static void main(String args[]){ </li></ul><ul><li>int a=10,b=20,s; </li></ul><ul><li>s=soma(a,b); </li></ul><ul><li>System.out.println(&quot;A + B= &quot;+s); </li></ul><ul><li>} </li></ul><ul><li>public static int soma(int a, int b){ </li></ul><ul><li> return(a+b); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  7. 7. Criação de Métodos em JAVA (cont.) <ul><li>Recursividade </li></ul><ul><li>Os programas são estruturados com métodos que chamam uns aos outros, o que facilita a resolução de muitos problemas, além de reduzir consideravelmente o tamanho do código. A recursividade ocorre quando um método chama a si próprio. </li></ul><ul><li>Exemplo: </li></ul><ul><li>class Exemplo4{ </li></ul><ul><li>public static void main(String args[]){ </li></ul><ul><li>long a=5,fat; </li></ul><ul><li>fat=fatorial(a); </li></ul><ul><li>System.out.println(&quot;Fatorial de &quot;+ a + &quot;=&quot;+fat); </li></ul><ul><li>} </li></ul><ul><li>public static long fatorial(long n){ </li></ul><ul><li>if(n<=1) </li></ul><ul><li> return 1; </li></ul><ul><li>else </li></ul><ul><li> return(n*fatorial(n-1)); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  8. 8. Criação de Métodos em JAVA (cont.) <ul><li>Sobrecarga </li></ul><ul><li>A linguagem Java permite que vários métodos sejam definidos com o mesmo nome, desde que eles tenham um conjunto de parâmetros diferentes em número ou em tipo. </li></ul><ul><li>class Exemplo5{ </li></ul><ul><li>public static void main(String args[]){ </li></ul><ul><li>System.out.println(&quot;A area de um quadrado ....&quot; + area(3)); </li></ul><ul><li>System.out.println(&quot;A area de um retangulo ...&quot; + area(3,2)); </li></ul><ul><li>System.out.println(&quot;A area de um cubo ........&quot; + area(3,2,5)); </li></ul><ul><li>} </li></ul><ul><li>public static double area(int x){ </li></ul><ul><li>return x*x; </li></ul><ul><li>} </li></ul><ul><li>public static double area(int x, int y){ </li></ul><ul><li>return x*y; </li></ul><ul><li>} </li></ul><ul><li>public static double area(int x,int y,int z){ </li></ul><ul><li>return x*y*z; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  9. 9. Criação de Métodos em JAVA (cont.) <ul><li>Acesso a métodos de outras classes </li></ul><ul><li>Até este ponto só foi demostrado acesso a métodos da própria classe, com exceção dos métodos internos da própria linguagem Java. </li></ul><ul><li>Qualquer método criado em uma classe pode ser utilizado em outra classe através da seguinte sintaxe: </li></ul><ul><li><nome da classe>.<nome do método> </li></ul><ul><li>Observação : Para que a invocação de um método de outra classe seja possível, é necessário que a classe utilizada esteja no mesmo diretório da classe que contém o método, mais a configuração do classpath , como vimos no início do curso. </li></ul><ul><li>Exemplo: </li></ul><ul><li>class Exemplo6{ </li></ul><ul><li>public static void main(String args[]){ </li></ul><ul><li> Exemplo1.limpaTela(); </li></ul><ul><li> System.out.println(&quot;Teste do uso do metodo limpaTela da Classe Exemplo1&quot;); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  10. 10. Criação de Métodos em JAVA (cont.) <ul><li>Acesso a métodos de outras classes </li></ul><ul><li>Até este ponto só foi demostrado acesso a métodos da própria classe, com exceção dos métodos internos da própria linguagem Java. </li></ul><ul><li>Qualquer método criado em uma classe pode ser utilizado em outra classe através da seguinte sintaxe: </li></ul><ul><li><nome da classe>.<nome do método> </li></ul><ul><li>Observação : Para que a invocação de um método de outra classe seja possível, é necessário que a classe utilizada esteja no mesmo diretório da classe que contém o método, mais a configuração do classpath , como vimos no início do curso. </li></ul><ul><li>Exemplo: </li></ul><ul><li>class Exemplo6{ </li></ul><ul><li>public static void main(String args[]){ </li></ul><ul><li> Exemplo1.limpaTela(); </li></ul><ul><li> System.out.println(&quot;Teste do uso do metodo limpaTela da Classe Exemplo1&quot;); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  11. 11. Exercícios <ul><li>1) Crie um aplicativo que receba o raio de uma esfera (do tipo double) e chame o método volumeEsfera para calcular e exibir o volume da esfera na tela. Para o cálculo do volume deve ser usada a fórmula seguinte: volume=(4.0/3.0)*PI*raio³. </li></ul><ul><li>2) Crie um aplicativo que receba uma temperatura qualquer em Fahrenheit e apresente seu correspondente em Celsius por meio de um método. Para o cálculo utilize a seguinte fórmula: celsius=5.0/9.0 *(f-32). </li></ul><ul><li>3) Crie um método chamado aleatório que sorteie uma determinada quantidade de números de acordo comum argumento. O usuário deve informar a quantidade de números a ser gerado e a faixa de números válidos para sorteio, por exemplo: se o usuário informar os argumentos 4 e 100 (aleatorio(4,100), devem ser gerados quatro números aleatórios entre 1 e 100. </li></ul><ul><li>4) Escreva uma função para imprimir na tela 22 caracteres *. Escreva o método main() para testar a função de forma a apresentar como resultado a seguinte saída, na tela: ********************** </li></ul><ul><li>* FELIZ ANIVERSARIO* </li></ul><ul><li>********************** </li></ul><ul><li>5) Escreva uma função para calcular a área de um retângulo. Escreva o método main() para testar a função. </li></ul><ul><li>6) Escreva uma função para calcular o fatorial de um número. Escreva o método main() para testar a função. </li></ul><ul><li>7)Escreva uma função para calcular o quadrado de um número. Escreva o método main() para testar a função. </li></ul>
  12. 12. Exercícios (cont.) <ul><li>8) Escreva uma função que receba como parâmetro o preço atual de uma mercadoria e calcule o novo preço da mercadoria com reajuste de 20%. Escreva o método main() para testar a função, imprimindo o preço da mercadoria depois do aumento, bem como o percentual aplicado. </li></ul><ul><li>9) Escreva uma função que receba como argumento o ano e retorne 1 se for um ano bissexto e 0 se não for um ano bissexto. Um ano é bissexto se for divisível por 4, mas não por 100. Um ano também é bissexto se for divisível por 400. </li></ul><ul><li>10) Escreva um programa que solicite ao usuário um ano e imprima o calendário desse ano. Utilize o método abaixo para calcular o dia da semana: </li></ul><ul><li>public static int diaSemana(int dia,int mes,int ano){ </li></ul><ul><li> int f; </li></ul><ul><li> f=ano+dia+3*(mes-1)-1; </li></ul><ul><li> if(mes<3)ano--; </li></ul><ul><li> else f-=(int)(0.4f*mes+2.3f); </li></ul><ul><li> f+=(int)(ano/4)-(int)((ano/100+1)*0.75f); </li></ul><ul><li> f%=7; </li></ul><ul><li> return(f); </li></ul><ul><li>} </li></ul><ul><li>Obs : Esta função retornará um número de 0 a 6, onde o zero corresponde ao domingo, o 1 a segunda-feira e assim sucessivamente. </li></ul>
  13. 13. Exercícios (cont.) <ul><li>11) Escreva uma função que desenhe um retângulo de 5 linhas por 20 colunas usando os caracteres ‘+’ , ‘-’ e ‘|’. O número de linhas, o de colunas e os caracteres do desenho são argumentos “default” da função. Quando a função é chamada sem nenhum argumento, desenha o seguinte retângulo: </li></ul><ul><li>+--------------------------------+ </li></ul><ul><li>| | </li></ul><ul><li>| | </li></ul><ul><li>| | </li></ul><ul><li>+--------------------------------+ </li></ul><ul><li>12)Escreva um programa contendo uma função sobrecarregada chamada Divide(). Se esta função for chamada com dois argumentos float, ela deve retornar o resultado da divisão de um argumento pelo outro. Se a função Divide() for chamada com um único argumento float, deve retornar o resultado da divisão deste argumento por 10. </li></ul><ul><li>13) Escreva uma função recursiva de nome soma() que receba um número inteiro positivo n como argumento e retorne a soma dos n primeiros números inteiros. Por exemplo, se a função receber n=5, deve retornar 15, pois 15=1+2+3+4+5. </li></ul>
  14. 14. Bibliografia <ul><ul><li>FURGERI, Sérgio. Java 2: Ensino didático: Desenvolvendo e Implementando Aplicações – </li></ul></ul><ul><ul><li>São Paulo: Érica, 372p. 2002. </li></ul></ul><ul><ul><li>TAMASSIA, R.; GOODRICH, M.T. Estrutura de Dados e Algoritmos em Java. Bookman, 2002. </li></ul></ul><ul><ul><li>DEITEL,H.M.; DEITEL, P.J. Java: Como Programar , Bookman, 2002. </li></ul></ul>

×