Linguagem Java Rebeca Schroeder E-mail: [email protected] Linguagem Java Surgimento: 1990 - James Gosling - Sun Microsystems Concebida para o desenvolvimento de pequenos aplicativos e programas de aparelhos eletrodomésticos e eletroeletrônicos C++ OAK Java Linguagem Java Inicialmente conhecida como uma ferramenta para criar applets para a WWW Applet: mini-aplicação que é executada dentro de uma página Web Atualmente bastante utilizada para o desenvolvimento de aplicações para Internet, e outros... Características - Java Parecida com C, C++ Orientada a Objetos Embora use um paradigma diferente do C, tem algumas características herdadas desta linguagem Implementa quase todas as características do paradigma orientada a objetos, exceto herança múltipla Segurança Não há ponteiros (apresenta outras estruturas mais seguras) Coleta automática de lixo: O programador não precisa gerenciar diretamente a memória Mecanismos de tratamento de exceções Características - Java Suporta execuções concorrentes: Thread de execução Suporte a programação de sistemas distribuídos: Sockets Remote Method Invocation (RMI) ... Características - Java É uma linguagem compilada Programas Java compilados chamam-se “byte-code” (.class) O “byte-code” será interpretado por uma máquina virtual para então executar O “byte-code” pode “rodar” em máquinas de sistemas diferentes Características - Java Máquina Virtual Java (Java Virtual Machine - JVM) Somente dentro da JVM é que os códigos Java são efetivamente executados Uma especificação de JVM suporta uma determinada especificação de hardware Então “byte-code” são instruções de código de máquina para a JVM “Escrever uma vez, executar em qualquer parte, a qualquer tempo e para sempre” Patrick Naughton As versões do Java 1997 1996 Java 1.1 Java 1.02 500 classes 250 classes Lento Applets 1998 Java 2 2300 classes Em 3 sabores: - J2ME, -Popular. - J2SE, -Melhor GUI - J2EE. 2004 Java 5.0 Tiger 3500 classes genéricos, auto boxing, anotações, foreach, varargs, … 2006 Java 6.0 Mustang 4000 classes A “Sopa de letrinhas” do Java API Application Programming Interfaces São bibliotecas de classes, que podem ser reutilizadas no desenvolvimento de aplicativos Java JSDK (ou JDK): Java Software Development Kit Conjunto de ferramentas de desenvolvimento Java disponibilizado pela SUN Compilador + depurador + API Documentação A “Sopa de letrinhas” do Java JRE Java Runtime Environment Contém as bibliotecas, máquina virtual e demais componentes necessários para executar applets e aplicações escritas em Java A “Sopa de letrinhas” do Java J2SE (ou Core Java Platform) J2ME Java 2 Standard Edition Contém o JDK e o JRE Java 2 Micro Edition É o Java para pequenos dispositivos J2EE Java 2 Enterprise Edition Ambiente para o desenvolvimento de aplicações corporativas, complexas e distribuídas fisicamente. A “Sopa de letrinhas” do Java JDBC Java Database Connectivity Solução para acesso multiplataforma à banco de dados. JSP JavaServer Pages Criação de páginas web dinâmicas A “Sopa de letrinhas” do Java Servlets Equivalem as CGIs. São programas Java que rodam no servidor. Possibilitam a geração de conteúdo dinâmico para a Web Applets Programa escrito em Java e que pode ser executado a partir de uma página HTML A “Sopa de letrinhas” do Java EJB – Enterprise JavaBeans A especificação EJB define um padrão paraComponentes de negócio distribuídos. RMI – Remote Method Invocation Solução para distribuição de aplicações Java, permite a comunicação entre objetos. A “Sopa de letrinhas” do Java AWT – Abstract Window Toolkit Esta API contém tratamento de eventos, janelas, caixas de Diálogo, cores e outros elementos visuais. Swing Principal parte do JFC (Java Foundation Classes) estende o AWT, e tem substituído este em muitos casos. Onde obter o Java J2SE - http://java.sun.com/j2se/ J2EE- http://java.sun.com/j2ee/ J2ME - http://java.sun.com/j2me/ Ambientes de desenvolvimento JCreator - http://www.jcreator.net NetBeans - http://www.netbeans.org/ Eclipse - http://www.eclipse.org Anatomia de uma classe Java Anatomia de uma classe Java <Classe> <atributo 1>: <Tipo 1> <atributo 2>: <Tipo 2> <atributo 3>: <Tipo 3> public class <Classe> { <Tipo1> <atributo1>; <Tipo2> <atributo2>; <Tipo3> <atributo3>; <Tipo4> <operação1>(<args>){ <declaracao1>; <declaracao2>; return <Tipo4>; } <operação 1>(<args>): Definição em UML } Definição em Java Anatomia de uma classe Java public class Automovel { int nPortas; String placa; Atributos void acelerar(){ //Implementação do método acelerar System.out.println(“Acelerando…”); } Métodos void frear(){ /*Implementação do método frear*/ System.out.println(“Freando…”); } } Comentários Classe e Pacotes • Java possui diversas classes padrões, que implementam a maioria das funcionalidades necessárias para uma aplicação • • • Esse conjunto de classes padrões (API) são organizados em pacotes (cada pacote contendo diversas classes) Principais pacotes da API Java: • • • • Exemplos: funções matemáticas, classes para manipulação de Strings... java.lang java.match java.util Consulte a API Java: • http://java.sun.com/j2se/1.5.0/docs/api/ Como criar uma classe Java 1 Crie um documento de código fonte. Use a linguagem Java (obedeça a sua sintaxe) 2 Submeta seu documento ao compilador. O compilador verificará erros e não permitirá gerar a saída até que tudo esteja adequado para que o programa execute corretamente 3 O compilador cria um novo documento, bytecode Java (.class). 4 Qualquer dispositivo que possua uma implementação de máquina virtual será capaz de executar seu programa Java. A máquina virtual lê e executa o bytecode. Compilação para byte-code Variável de ambiente JAVA_HOME (opcional: usada por vários frameworks) Define qual o local de instalação do Java no seu sistema. Exemplos: JAVA_HOME= c:\j2sdk1.4.0 Variável de ambiente CLASSPATH: local que contém todos os caminhos locais para localizar classes Compilação para byte-code Como compliar: javac NomeDaClasse.java javac -d ../destino Um.java Dois.java javac -d ../destino *.java javac -classpath c:\fontes -d ../destino *.java Algumas opções (opcionais) -d diretório onde serão armazenadas as classes (arquivos .class) geradas -classpath diretórios (separados por ; ou :) onde estão as classes requeridas pela aplicação -sourcepath diretórios onde estão as fontes Para conhecer outras opções do compilador, digite javac sem argumentos Execução Como executar: java NomeDaClasse java pacote.subpacote.NomeDaClasse java -classpath c:\classes;c:\bin;. pacote.Classe java -cp c:\classes;c:\bin;. pacote.Classe java -cp %CLASSPATH%;c:\mais pacote.Classe java -cp biblioteca.jar pacote.Classe java -jar executavel.jar Principais opções -cp ou -classpath classpath novo (sobrepõe variável de ambiente) -jar executa aplicação executável guardada em JAR