260 likes | 477 Views
Introdução à Linguagem Java. Modelagem e Programação Orientada a Objetos Curso Superior de Tecnologia em Sistemas para Internet Prof. Cristiano Stüpp Nunes cristiano.nunes@metrocamp.edu.br. Java. Linguagem de programação orientada a objetos;
E N D
Introdução à Linguagem Java Modelagem e Programação Orientada a Objetos Curso Superior de Tecnologia em Sistemas para Internet Prof. Cristiano Stüpp Nunes cristiano.nunes@metrocamp.edu.br
Java • Linguagem de programação orientada a objetos; • Desenvolvida na década de 90 por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems (comprada pela Oracle); • Permite desenvolver: • WebServices • Enterprise JavaBeans (EJB) • Java Servlets • JavaServerPages (JSP)
Java • Distribuições: • J2SE (Standard Edition): Para desenvolvimento de aplicações desktop, cliente/servidor; • J2ME (Micro Edition): Para desenvolvimento de aplicativos para celulares e PDAs; • J2EE (Enterprise Edition): Para desenvolvimento de aplicações distribuídas, multicamadas e WEB.
Hello World class HelloWorldApp { //Comentário de linha publicstaticvoidmain(String[] args) { System.out.println("Hello World!"); } /* Comentário de bloco */ }
Hello World • Para executar o aplicativo Hello World é preciso: • Salvar o arquivo de código-fonte com o mesmo nome usado após a palavra reserva class, como a extensão .java. Neste caso: HelloWorldApp.java • Compilar o código fonte para que seja gerado o .class, da seguinte maneira: javac HelloWorldApp.java • Executar o aplicativo usando apenas o nome da classe: java HelloWorldApp • Importante: a linguagem Java é case-sensitive, ou seja, diferencia entre maiúsculas e minúsculas.
HelloWorldApp revisitado a) Altere a linha System.out.println("Hello World!"); para System.out.println("Hello " + args[0] + " e " + args[1]); b) Compile novamente o programa com javac c) Execute o programa da seguinte forma: java HelloWorldApp FranciscoMaria d) Como args é um vetor dinâmico de objetos da classe String e é o argumento do método main() desse programa, Francisco e Maria são passados como parâmetros quando o java executa esse método.
Como o Java é executado Código Fonte HelloWorldApp.java javac HelloWorldApp.java Java Byte Code HelloWorldApp.class java HelloWorldApp Existem uma JVM (Java Virtual Machine) para cada tipo de sistema operacional. JVM JVM JVM
Tipos de dados (Tipos Primitivos) • boolean • Pode assumir o valor true ou o valor false • char • Caractere em notação Unicode de 16 bits. Serve para a armazenagem de dados alfanuméricos. • byte • Inteiro de 8 bits em notação de complemento de dois. Pode assumir valores entre -27=-128 e 27-1=127. • short • Inteiro de 16 bits em notação de complemento de dois. Os valores possívels cobrem a faixa de -2-15=-32.768 a 215-1=32.767
Tipos de dados (Tipos Primitivos) • int • Inteiro de 32 bits em notação de complemento de dois. Pode assumir valores entre -231=2.147.483.648 e 231-1=2.147.483.647. • long • Inteiro de 64 bits em notação de complemento de dois. Pode assumir valores entre -263 e 263-1. • float • Representa números em notação de ponto flutuante normalizada em precisão simples de 32 bits. O menor valor positivo represntável por esse tipo é 1.40239846e-46 e o maior é 3.40282347e+38 • double • Representa números em notação de ponto flutuante normalizada em precisão dupla de 64 bits. O menor valor positivo representável é 4.94065645841246544e-324 e o maior é 1.7976931348623157e+308
Classe String • Java não disponibiliza de um tipo primitivo para tratar cadeia de caracteres (palavras), mas sim uma classe para tal, chamada String; //declara um objeto String e já o inicializa com um valor (frase) String umaFrase = “Não existe tipo primitivo para String”; //retorna a décima sétima letra da String, neste caso, a letra p umaFrase.charAt( 17 ); //retorna o número de caracteres da String, neste caso, 38 umaFrase.length(); Tudo sobre a classe String: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
Declaração de variáveis //Declaração simples char sexo; //Declaração simultânea boolean ligado, encontrou; //Declaração e atribuição simultâneas byte a=10, b=5, c; //Declaração e atribuição em diferentes instruções int valor; valor = 100;
Arrays (vetores ou matrizes) • São estruturas de dados capazes de armazenar mais de um valor do mesmo tipo sob o mesmo nome; • Cada valor de um array é identificado por um índice; • Forma Geral: <tipo>[]<nome_do_array>= new<tipo>[no de elementos]; Ou <tipo><nome_do_array>[]= new<tipo>[no de elementos];
Declaração e atribuição de arrays //Declaração e dimensionamento na mesma instrução char alfabeto[] = newchar[26]; //Declaração e dimensionamento em diferentes instruções int[] num; num = newint[10]; //Declaração e atribuição dimensionada float nota[] = { 7.8, 8.4, 4.2, 1.8, 6.4 }; nota.length//Retorna o valor 5, pois é a quantidade de elementos do array nota //Declaração dimensionada e atribuição em diferentes instruções char sexo[] = newchar[2]; sexo[0] = “M”; sexo[1] = “F”; //Declaração dinâmica, mas em algum momento terá que se dimensionar boolean tabela_verdade[];
Símbolos especiais \nAvanço de linha (LF) (imprime na próxima linha) \tAvanço de parágrafo (tabulação) \bInício de linha (retrocesso) \rCarriage Return (CR) \fAvanço de página \\Imprime uma barra invertida \’Imprime o caracter apóstrofe \”Imprime o caracter aspas
Símbolos especiais Comando: System.out.println(“linha de cima \n linha de baixo”); Saída: linha de cima linha de baixo Comando: System.out.println(“Java vai entre aspas assim: \”Java\”.“); Saída: Java vai entre aspas assim: ”Java”.
Estrutura de condição if([condição]) { [comando 1] // Executado se a condição for true } else { [comando 2] // Executado se a condição for false }
Estrutura condicional seletiva por valores switch([expressão]) { case [constante 1]: [comando 1] break; case [constante 2]: [comando 2] break; . . . case [constante n]: [de comando n] break; default: [comando] }
Laços de iteração • Enquanto/faça: while([condição]) { [comandos] } • Faça/enquanto: do { [comando] } while([condição]);
Laços de iteração • Com contagem: for ([expressão 1]; [condição]; [expressão 2]) { [comando] }
Tratamento de exceções(erros) • Exceções em Java referem-se aos erros que podem ser gerados durante a execução de um programa; • Esses erros podem e devem ser tratados dentro do programa. try { <bloco de instruções> } catch ( <Tipo da exceção><argumento> ) { <bloco de instruções> }
Tratamento de exceções(erros) try { //gera uma exceção em tempo de execução int x = 10 / 0; } catch ( Exception erro ) { //mostra a mensagem de erro System.out.println( erro.getMessage() ); //mostra a exceção e a linha onde ocorreu o erro erro.printStackTrace(); } Nota:erro é um objeto da classe Exception passado como parâmetro no catch. Nele está instanciado informações sobre o erro gerado em tempo de execução.
Conversão de tipo de dado public class Some{ publicstaticvoidmain (String args[]) { int soma = Integer.parseInt( args[0] ) + Integer.parseInt(args[1] ); System.out.println(soma); } } Existem os métodos estáticos para outras classes como: Float.parseFloat(String S) Float.toString(float f) Byte.parseByte(String S)
Entrada de dados via teclado importjava.io.IOException; public class EntradaPeloTeclado { publicstaticvoidmain (String args[]) { byte entrada[] = new byte[20]; try { System.in.read(entrada); } catch ( IOException e ) { System.out.println(“Erro na entrada de dados”); } String str = new String(entrada); } }