Linguagem Java Alexandre Parra E-mail: [email protected] Site: www.udesc.br Roteiro Breve Histórico de Java Características da Linguagem Java Java Virtual Machine (JVM) Sintaxe da Linguagem Java Histórico (1/2) 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 Histórico Inicialmente conhecida como uma ferramenta para criar applets para a WWW. (2/2) 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++ Embora use um paradigma diferente do C, tem algumas características herdadas desta linguagem. Orientada a Objetos (1/4) Implementa quase todas as características do paradigma orientada a objetos, exceto herança múltipla. Segurança Não há ponteiros (apresenta seguras); Coleta automática de lixo: outras estruturas mais O programador não precisa gerenciar diretamente a memória Mecanismos de tratamento de exceções. Características – Java Suporta execuções concorrentes/paralelas: (2/4) Threads de execução Suporte a distribuídos: programação de Sockets; Remote Method Invocation (RMI); ... sistemas Características – Java (3/4) É uma linguagem interpretada. Programas Java compilados chamam-se “byte-code” (.class). O “byte-code” será interpretado por uma máquina virtual (JVM) para então executar. O “byte-code” pode “rodar” em máquinas de plataformas diferentes (independente de plataforma). Características – Java (4/4) Java Virtual Machine (JVM) Somente dentro da JVM é que os códigos Java são efetivamente executados. Uma especificação da JVM é direcionada para 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 A “Sopa de Letras” do Java API (Application Programming Interface) (1/3) 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 Letras” do Java (2/3) JRE (Java Runtime Environment) Bibliotecas; Máquina Virtual Java e demais componentes necessários para executar applets e aplicações escritas em Java. A “Sopa de Letras” do Java J2SE (Java 2 Standard Edition) Núcleo da Plataforma Java Contém o JDK e o JRE J2ME (Java 2 Micro Edition) (3/3) É o Java para pequenos dispositivos J2EE (Java 2 Enterprise Edition) Ambiente para o desenvolvimento de aplicações corporativas, complexas e distribuídas fisicamente. Sintaxe Java Classe em Java Atributos Construtores Métodos Interface Exemplos de Programas Simples Classe em Java Uma classe define o estado e comportamento de um objeto, implementando atributos e métodos. Classe representa um tipo de dado complexo. Objetos (instâncias) dinâmica das classes. são a representação Principais membros das classes: atributos, métodos e construtores. Tipos de Classe São dois tipos de classes: Classes Concretas: permite a criação de objetos (instâncias) que representam indivíduos específicos da classe. Classes Abstratas: não permite a criação de objetos (instâncias). Normalmente, classes abstratas são utilizadas para a definição de interfaces ou de templates que serão utilizados (através da herança) por classes concretas. Sintaxe de definição de Classe em Java Os membros só podem ocorrer dentro do bloco ‘class <NomeDaClasse> { ... }’, em qualquer ordem (1) zero ou mais declarações de atributos; (2) zero ou mais construtores; (3) zero ou mais definições de métodos. Exemplo de Classe Concreta public class Lampada { // definição dos atributos public boolean estado; construtor atributo // definição do construtor da classe public Lampada(boolean estado) { this.estado = estado; } // definição dos métodos public void acende() { estado = true; } public void apaga() { estado = false; } métodos public void mostraEstado() { if(estado == true) System.out.println(“A lâmpada está acesa.”); else System.out.println(“A lâmpada está apagada.”); } } // fim da classe Lampada Exemplo de Classe Abstrata Classe abstrata public abstract class FigurasGeometricas { private float base; private float altura; private float coordX; private float coordY; public abstract float calculaPerimetro(); public abstract float calculaArea(); public void setBase(float base) { this.base = base; } public float getBase() { return base; } public void setAltura(float altura) { this.altura = altura; } ... } Sintaxe de definição de atributos em Java Sintaxe básica [mod]* tipo identificador [= valor]; Chave [mod]*: zero ou mais modificadores (de acesso, de qualidade), separados por espaços: public, private, static, final, etc...; tipo: tipo de dados que a variável (ou constante) pode conter; identificador: nome da variável ou constante; [= valor]: valor inicial da variável ou constante. Exemplo de atributos em Java atributos Construtores Construtores são procedimentos usados para construção de objetos Parecem métodos, mas não têm tipo de retorno. Têm nome idêntico ao nome da classe; Nem sempre aparecem explícitos em uma classe: podem ser omitidos (o sistema oferece uma implementação padrão). Sintaxe de definição de construtores em Java Possui sempre o mesmo nome que a classe. Contém procedimentos entre chaves, como os métodos. São chamados apenas uma vez: na criação do objeto. Pode haver vários em uma mesma classe. São identificados pelo número e tipo de argumentos. Nunca declara-se tipo de retorno Sintaxe [mod]* nome_classe ( [tipo arg]* ) { ... } Exemplo de construtores em Java construtores Sintaxe de definição de métodos em Java Sintaxe básica [mod]* tipo identificador ([tipo arg]*) { ... } Chave [mod]*: zero ou mais modificadores de acesso separados por espaços; tipo: tipo de dados retornado pelo método; identificador: nome do método; [arg]*: zero ou mais argumentos, com tipo declarado, separados por vírgula; Exemplo de métodos em Java métodos Sintaxe de definição de Interface em Java Só podem ocorrer dentro do bloco “interface nomeDaInterface { ... }”: (1) zero ou mais métodos abstratos; (2) zero ou mais constantes; Exemplos de Interface public interface Relogio { public void setHorario(Date horario); public Date getHorario(); public void setHorarioAlarme(Date horario); public Date getHorarioAlarme(); public void ligarAlarme(); public void desligarAlarme(); public void setVolumeRelogio(int volume); public int getVolumeReologio(); } public interface Radio { public void setEmissora(float emissora, String tipo); public float getEmissora(); public String getTipoEmissora(); public void setVolumeRadio(int volume); public int getVolumeRadio(); } Exemplo simples de Programa (1/2) Exemplo simples de Programa (2/2) Objeto em Java (1/3) O que é um objeto ? São conceitos que têm: identidade, estado e comportamento. Objeto em Java (2/3) Em Java, objetos são armazenados na memória heap e manipulados através de referência (variável), guardada na pilha. Tem estado (atributos); Tem comportamento (métodos); Tem identidade (a referência). Interface de Objetos Através da interface* é possível comunicarse com objetos Não é preciso implementação. saber dos detalhes da O tipo (Classe) de um objeto determina sua interface O tipo determina quais mensagens podem ser enviadas aos objetos. * Interface aqui refere-se aos métodos de um objeto e não um conceito. Exemplo de assinaturas de métodos Onde obter o Java ? J2SE - http://java.sun.com/j2se/ J2EE - http://java.sun.com/j2ee/ J2ME - http://java.sun.com/j2me/ IDE (Integrated Development Environment) JCreator - http://www.jcreator.net NetBeans - http://www.netbeans.org/ Eclipse - http://www.eclipse.org Leitura Ler os capítulos 4 e 5 do livro “Java como Programar” presente em http://www.joinville.udesc.br/portal/professores/parra/ Exercícios Fazer os exercícios propostos no arquivo “exercicios_ling_java.doc” que se encontra em http://www.joinville.udesc.br/portal/professores/parra/ no link “Materiais” da disciplina LPG-II.