12.07.2015 Views

Aula 2 - Introdução à Linguagem Java - Ifrn

Aula 2 - Introdução à Linguagem Java - Ifrn

Aula 2 - Introdução à Linguagem Java - Ifrn

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Curso: Técnico em InformáticaCampus: IpanguaçuJosé Maria MonteiroPontifícia Universidade Católica do Rio de Janeiro – PUC-RioDepartamento Clayton Maciel de Informática Costaclayton.maciel@ifrn.edu.brmonteiro@inf.puc-rio.brrio.br“Nada existe no mundo tão poderosoquanto uma idéia cujo tempo chegou”.Victor Hugo1


Unidade II: Introdução à<strong>Linguagem</strong> <strong>Java</strong>Introdução à <strong>Linguagem</strong> <strong>Java</strong> O nome “java” é usado para referir-se a:– Uma linguagem de programação orientada aobjetos;– Uma coleção de APIs (classes, componentes,frameworks) para o desenvolvimento de aplicaçõesmultiplataforma;– Um ambiente de execução presente em browsers,eletrodomésticos, mainframes, SOs, celulares,palmtops, cartões inteligentes, … James Gosling, sun microsystems, 1995;– <strong>Linguagem</strong> projetada para eletrodomésticos2


Introdução à <strong>Linguagem</strong> <strong>Java</strong> Origem e Evolução– 1991 (Green Project/Oak) - SW p/ dispositivosde eletrônicos em rede. Requisitos:• suporte a diferentes plataformas• distribuição de software via rede• garantia de confiabilidade de código• baixos requisitos de memória• código pequeno– 1994 - Hot<strong>Java</strong> - browser 100% <strong>Java</strong>– 1995 - lançada no SunWorld (voltada à Web)A <strong>Linguagem</strong> <strong>Java</strong> Origem e Evolução– Ideal para a Internet;• Os applets são colocados em páginas html• Servlets/JSP– Independente da Internet;• Pode ser usada para o desenvolvimento deaplicações standalone– Aplicações de Console (DOS)– Aplicações Desktop (Windows Forms)• E muito mais …3


A <strong>Linguagem</strong> <strong>Java</strong> Tecnologia e Conceitos– A evolução da linguagem é controlada pelo<strong>Java</strong> Community Process (www.jcp.org)formado pela Sun e usuários <strong>Java</strong>;– Ambientes de execução (JRE) e dedesenvolvimento (SDK) são fornecidos porfabricantes de hardware e software;– <strong>Java</strong> possui uma coleção de APIs (bibliotecas)padrão que podem ser usadas para construiraplicações• Organizadas em pacotes (java.*. <strong>Java</strong>x.* e extensões);• Usadas pelos ambientes JRE e SDK;A <strong>Linguagem</strong> <strong>Java</strong> Terminologia– JDK - <strong>Java</strong> Development Kit: Terminoligia utilizadaaté a versão 1.1 para identificar a plataforma <strong>Java</strong>.– <strong>Java</strong> 2: Terminologia utilizada a partir da versão 1.2da plataforma <strong>Java</strong>, atualmente na versão 1.4.– J2SDK – <strong>Java</strong> 2 Software Development Kit: Ambientecompleto para o desenvolvedor <strong>Java</strong>. Incluicompilador e a Virtual Machine.– J2RE – <strong>Java</strong> 2 Runtime Environment: Ambienteapenas para execução de aplicações <strong>Java</strong>,utilizada em ambientes de produção. Não contémo compilador.– JVM – Máquina Virtual <strong>Java</strong>. Máquina imagináriaimplementada como uma aplicação de softwareem uma máquina real.4


A <strong>Linguagem</strong> <strong>Java</strong> Plataformas <strong>Java</strong>AWTSwingAppletsThreadsCollectionsFiles<strong>Java</strong> Development Kit(JDK)EnterpriseAPIsA <strong>Linguagem</strong> <strong>Java</strong> Plataformas<strong>Java</strong>5


A <strong>Linguagem</strong> <strong>Java</strong> Plataformas <strong>Java</strong>Source: Sun Microsystems, Inc.A <strong>Linguagem</strong> <strong>Java</strong> Plataformas <strong>Java</strong>6


A <strong>Linguagem</strong> <strong>Java</strong> Orientada a Objetos; Orientada a Eventos; C++ like (sem ponteirosexplícitos) Distribuída; Compilada/Interpretada; Robusta; Segura; Portável; Código Móvel; Multi-Threaded; Garbage Collected; Case Sensitive; Trat. de Exceções;A <strong>Linguagem</strong> <strong>Java</strong> <strong>Linguagem</strong> Concorrente; Ambientes Visuais; Programação com Componentes; <strong>Java</strong> é um padrão suportado por várias indústrias;7


A <strong>Linguagem</strong> <strong>Java</strong>Orientada a Objetos Objetos; Classes (abstratas e concretas); Encapsulamento; Proteção (public, private, protected, default); Herança (simples e “quase múltipla”); Polimorfismo;A <strong>Linguagem</strong> <strong>Java</strong>C++ Likeclass Complex{float real, imag;boolean isReal ()(return (imag==0);}}8


A <strong>Linguagem</strong> <strong>Java</strong>Distribuída Pacote de classes para programação em rede(java.Net): sockets, urls, http, datagrama, etc;Rmi;Integração com Corba (Objetos Distribuídos); Excelente para o desenvolvimento de aplicaçõesCliente/Servidor;A <strong>Linguagem</strong> <strong>Java</strong>Compilada/InterpretadaCompilada (bytecodes)Interpretação (máquina virtual, jvm)Portável - “write once run anywhere”AloMundo.javacompilador (javac)AloMundo.classinterpretador (JVM)Execução9


A <strong>Linguagem</strong> <strong>Java</strong>Compilada/InterpretadaHelloWorldApp.classA <strong>Linguagem</strong> <strong>Java</strong>Compilada/InterpretadaHelloWorldApp.java10


A <strong>Linguagem</strong> <strong>Java</strong>Compilada/InterpretadaBytecode / APIInterpretador<strong>Java</strong> Virtual MachinebytecodesBrowserServidor HTTPObs: 5% de C compilado (Desempenho)A <strong>Linguagem</strong> <strong>Java</strong>Código NativoJIT CompilerBytecode / API<strong>Java</strong> Virtual MachinebytecodesBrowserServidor HTTPObs: JIT (Just-in-Time compiler, 50% de C compilado (Desempenho)11


A <strong>Linguagem</strong> <strong>Java</strong>PortávelHelloWorldApp.classA JVM é específicapara cada SO eHardware.(JVM) (JVM) (JVM)A <strong>Linguagem</strong> <strong>Java</strong>Robusta Não permite acesso direto à memória;– (não utiliza ponteiros explícitos); Possui coletor de lixo (garbagge collector); Possui tratamento de exceções; Fortemente tipada; Implementa o conceito de cast’s; Verificações obrigatórias (ex: arrays);13


A <strong>Linguagem</strong> <strong>Java</strong>Tratamento de Exceções Permite o tratamento de situações excepcionais; Sintaxe apropriada:– try, catch, finally, throw, throws; Exceções embutidas; Permite a criação de novas exceções– definição de situações excepcionais;A <strong>Linguagem</strong> <strong>Java</strong>Estrutura de um Programa <strong>Java</strong>class {public static void main ( < parâmetros > ) {< declarações >< comandos >}}main: método por onde se inicia a execução do programa.public: é o qualificador do método, indica que este método é acessível a objetos declasses externas.static: qualificador, os métodos statics podem ser invocados mesmo sem existir umobjeto instanciado da classe.void: indica que o método não tem valor de retorno.15


A <strong>Linguagem</strong> <strong>Java</strong>O Primeiro Programa <strong>Java</strong>public class HelloWorld {public static void main ( String args[ ] ) {System.out.println(“Hello World!”);}}Salvar o arquivo com o nome da classe: HelloWorld.javaPara Compilar: javac HelloWorld.javaPara Executar: java HelloWorldA <strong>Linguagem</strong> <strong>Java</strong>Literais e Tipos Tipos representam um valor, uma coleção devalores ou coleção de outros tipos. Podem ser:– Tipos básicos, ou primitivos: quando representamunidades indivisíveis de informação (de tamanhofixo).– Tipos complexos: quando representam informaçõesque podem ser decompostas em tipos “menores”(primitivos ou outros tipos complexos).16


A <strong>Linguagem</strong> <strong>Java</strong>Literais e Tipos Literais: São valores representáveis literalmente:– Números: 1, 2.14, 1.6e-23, etc Unidimensionais– Valores booleanos: true e false– Caracteres individuais: ‘a’, ‘u0041’,’\n’, etc– Seqüências de caracteres: “aaa”, “<strong>Java</strong>”– Vetores de números, booleanos ou strings: {”a”,”b”}CompostosA <strong>Linguagem</strong> <strong>Java</strong>Tipos Primitivos Têm tamanho fixo. Têm sempre um valor default. Armazenados na pilha (acesso rápido). Não são objetos.17


A <strong>Linguagem</strong> <strong>Java</strong>Tipos Primitivosbooleancharbyteshortintlongfloatdoubletrue ou falsecaracteres ( Unicode )inteiro ( 8 bits )inteiro (16 bits)inteiro ( 32 bits )inteiro ( 64 bits)ponto flutuante ( 32 bits )ponto flutuante (64 bits )A <strong>Linguagem</strong> <strong>Java</strong>Operadores Operadores Relacionais:> >= <


A <strong>Linguagem</strong> <strong>Java</strong>Strings “String” não é um tipo primitivo e sim uma classe; Literais: “”, “Hello”, “World”; Concatenação: “Hello” + “World” = “HelloWorld”; Conversão Implícita: “Hello” + 2001 =“Hello2001”; Comparação de Strings: a.equals(b) ; Tamanho de uma String: a.length() ;A <strong>Linguagem</strong> <strong>Java</strong>Atribuição< IDENTIFICADOR> = < EXPRESSÃO>Ex: idade = 23; sexo = “M”; tem_filhos = false;Incremento e Decrementoidade = idade + 1; ou idade + = 1; ou idade ++;idade = idade - 1; ou idade - = 1; ou idade --;19


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura CondicionalFORMA GERAL:if ( < EXPRESSÃO > ) {< BLOCO DE COMANDOS >}else {< BLOCO DE COMANDOS >}Onde: é uma seqüência de comandos entre { e }.A <strong>Linguagem</strong> <strong>Java</strong>Estrutura CondicionalEXEMPLO:...int x = 5;int y = 10;if (x == y) {System.out.println( “x = y” );}else {System.out.println( “x != y”);}...20


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura CondicionalExemplo:maior entre dois números...int x, y;Scanner s = new Scanner(System.in);x = s.nextInt ();y = s.nextInt ();if (x > y )System.out.println (x);elseif (y > x)System.out.println (y);elseSystem.out.println (“x = y”);...A <strong>Linguagem</strong> <strong>Java</strong>Estrutura Condicional ...if (x > y ){......if (x > y )System.out.println (x);elseif (y > x)System.out.println (y);elseSystem.out.println (“x = y”);PS: Escreva com clareza!!!System.out.println (x);}else{if (y > x){System.out.println (y);}else{System.out.println (“x = y”);}}...21


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura CondicionalExemplo:maior entre três números......if ((x > y) && (x > z))System.out.println (x);else if ((y > x) && (y > z))System.out.println (y);elseSystem.out.println (z);A <strong>Linguagem</strong> <strong>Java</strong>Estrutura de Repetição: WhileFORMA GERAL:while ( < EXPRESSÃO > ) {}< BLOCO DE COMANDOS >22


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura de Repetição: WhileEXEMPLO:Soma de 1 a N ...Scanner s1 = new Scanner(System.in);int i, n, s;n = s1.nextInt ();i = 1; s = 0;while (i < = n) {s = s + i;i = i + 1;}System.out.println(s);...A <strong>Linguagem</strong> <strong>Java</strong>Estrutura de Repetição: Do…WhileFORMA GERAL:do {< BLOCO DE COMANDOS >}while ( < EXPRESSÃO > );23


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura de Repetição: Do…WhileEXEMPLO:Soma de 1 a N......int i, n, s;n = Util.readInt ();i = 1; s = 0;do {s = s + i;i = i + 1;}while (i < = n);System.out.println(s);A <strong>Linguagem</strong> <strong>Java</strong>Estrutura de Repetição: ForFORMA GERAL:for ( < INICIALIZAÇÃO >; < TESTE >; < ATUALIZAÇÃO >; ) {< BLOCO DE COMANDOS >}24


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura de Repetição: ForEXEMPLO:…int soma = 0 ;for ( int i =1 ; i


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura de Repetição: ForEXEMPLO:…int soma = 0 ;for ( int i =1 , j =2, System.out.println(i); i


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura de Repetição: ForEXEMPLO:…int soma = 0 ;int i = 1;for (;;) {soma = soma + i ;System.out.println(soma);i++;}...A <strong>Linguagem</strong> <strong>Java</strong>Estrutura CaseFORMA GERAL:switch ( < EXPRESSÃO > ) {case x:< BLOCO DE COMANDOS >break ;case y: case z: case w :< BLOCO DE COMANDOS >break ;default:< BLOCO DE COMANDOS >break ;}27


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura Casechar, byte,short ou int.switch ( i % 35 ) {case 0:< BLOCO DE COMANDOS 1 >break ;case 5: case 10: case 15 :< BLOCO DE COMANDOS 2 >break ;default:< BLOCO DE COMANDOS 3 >break ;}Onde: % operador resto da divisão.ConstantExpression.Opcional.A <strong>Linguagem</strong> <strong>Java</strong>Estrutura CaseSaída: “Case 0”.int i = 0;switch (i){case 0:System.out.println("Case 0");break ;case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");break ;default:System.out.println("Case Default");break ;}28


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura CaseSaída: “Case 5, 10 ou 15”.int i = 10;switch (i){case 0:System.out.println("Case 0");break ;case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");break ;default:System.out.println("Case Default");break ;}A <strong>Linguagem</strong> <strong>Java</strong>Estrutura CaseSaída: “Case Default”.int i = 1;switch (i){case 0:System.out.println("Case 0");break ;case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");break ;default:System.out.println("Case Default");break ;}29


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura Caseint i = 0;switch (i){case 0:System.out.println("Case 0");break ;case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");break ;}Saída: “Case 0”.A <strong>Linguagem</strong> <strong>Java</strong>Estrutura Caseint i = 1;switch (i){case 0:System.out.println("Case 0");break ;case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");break ;}Saída:30


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura CaseSaída: “Case 5, 10 ou 15”.int i = 5;switch (i){case 0:System.out.println("Case 0");break ;default:System.out.println("Case Default");break ;case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");break ;}A <strong>Linguagem</strong> <strong>Java</strong>Estrutura Caseint i = 0;switch (i){case 0:System.out.println("Case 0");case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");default:System.out.println("Case Default");}Saída: “Case 0” “Case 5, 10 ou 15” “Case Default”.31


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura Caseint i = 0;switch (i){case 0:System.out.println("Case 0");default:System.out.println("Case Default");case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");}Saída: “Case 0” “Case Default” “Case 5, 10 ou 15”.A <strong>Linguagem</strong> <strong>Java</strong>Estrutura Caseint i = 5;switch (i){case 0:System.out.println("Case 0");case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");default:System.out.println("Case Default");}Saída: “Case 5, 10 ou 15” “Case Default”.32


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura Caseint i = 5;switch (i){case 0:System.out.println("Case 0");default:System.out.println("Case Default");case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");}Saída: “Case 5, 10 ou 15”.A <strong>Linguagem</strong> <strong>Java</strong>Estrutura Caseint i = 0;switch (i){case 0:System.out.println("Case 0");case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");break;default:System.out.println("Case Default");}Saída: “Case 0” “Case 5, 10 ou 15”.33


A <strong>Linguagem</strong> <strong>Java</strong>Estrutura Caseint i = 0;switch (i){default:System.out.println("Case Default");break;case 0:System.out.println("Case 0");case 5: case 10: case 15 :System.out.println("Case 5, 10 ou 15");break;}Saída: “Case 0” “Case 5, 10 ou 15”.Estudo de Caso34


“A diferença entre problemas edificuldades é que os primeirostêm solução.”Roberto CivitaA <strong>Linguagem</strong> <strong>Java</strong>ExercíciosA série de fibonacci é formada pela seqüência:1, 1, 2, 3, 5, 8, 13, … etc.Escreva um programa que gera a série de fibonacci até ovigésimo termo.Faça um programa para calcular o fatorial de um númerolido do teclado.Faça um programa que recebe uma frase (várias strings)como parâmetro e a imprime no vídeo.35


A <strong>Linguagem</strong> <strong>Java</strong>DesafioEscreva um programa que faça o seguinte teste para osnúmeros entre 1 e 100:– Se for múltiplo de 5 imprima: “fizz”;– Se for múltiplo de 7 imprima: “buzz”;– Se múltiplo de ambos imprima: “fizzbuzz”;Use:• args[ i ] , para se referir a um valor passado como parâmetro.• BufferedReader in = new BufferedReader (newInputStreamReader (System.in)); eString line = in.readLine( ); para ler uma string do teclado.A <strong>Linguagem</strong> <strong>Java</strong>Exemplopublic class Fibonacci{public static void main(String[] args){int current, prev = 1, prevprev = 0;System.out.print(prev + " ");for(int i = 0; i < 19; i++){current = prev + prevprev;System.out.print(current + " ");prevprev = prev;prev = current;}}}36


A <strong>Linguagem</strong> <strong>Java</strong>Exemplopublic class Factorial{public static void main(String args[]){int fact = 1;int numero;System.out.println("Digite um numero: ");numero = Util.readInt();for(int i = 2; i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!