Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Orientada a Objetos (Cód. ES006 / Sem. 2011-2 ) Universidade Federal do Ceará – UFC Campus de Quixadá Engenharia de Software Prof. Lincoln Souza Rocha (lincolnrocha@ufc.br) SOBRE A LINGUAGEM JAVA Lincoln Souza Rocha (POO - 2011.2) 2 Histórico • Iniciou como uma linguagem de programação para equipamentos eletrônicos (microondas, PDAs, ...) • Concebida no projeto Green (Green Team) – James Gosling (líder) – Inicialmente denominada OAK • Pequena, confiável e portável 3 Histórico (cont...) • Ideal para a Internet ! • Sua afirmação se deu com o surgimento do HotJava (Web Browse) 4 Projetada para aparelhos eletrônicos, lançada para desenvolver aplicativos para navegadores web e consolidada para o desenvolvimento web do lado servidor Uma Linguagem Moderna • O que é Java? – “Java é uma linguagem simples, orientada a objetos, distribuída, interpretada, robusta, segura, independente de arquitetura, portável, de alto desempenho, suportando multithreads e dinâmica.” Sun Microsystems, 1995 5 Java é Simples • Sintaxe familiar a vários programadores (baseada em C e C++) • Elimina várias redundâncias de C++ • Simples para algumas aplicações, desde que se conheça alguns pacotes • Simples dado tudo que a linguagem oferece 6 Java Eliminou... • Variáveis e funções globais • Ponteiros • goto, struct e union • Número variável de argumentos • Tipos fracos • Remoção programática de objetos • Classes parametrizadas! – Embora o Java Generics permita algo parecido 7 Java é Orientada a Objetos • Objetos e Classes • Encapsulamento (dados e operações) • Subtipos e Herança • Polimorfismo • Ligações dinâmicas (dynamic binding) • Criação e remoção dinâmica de objetos 8 Implementações de Java • Interpretada – Bytecodes da JVM – Independente de plataforma • Compilada – Código nativo em C ou C++ • Alta performance? 9 Alta Performance? • Java oferece alternativas e compromissos • Código do cliente pode ser interpretado – Compiladores JIT aumentam performance – Cliente universal – Código móvel, carregado pela rede, evitando instalações, conflito entre versões, etc. • Código do servidor pode ser compilado para código de máquina – Performance similar a C++ 10 Java é Portável • Em tese, redução de custos com migração, instalação, treinamento, etc. • Na prática, ainda é necessário depurar programas antes de migrar para outra plataforma 11 Java é Distribuída • Oferece suporte de alto nível para acesso a Internet / WWW • Objetos distribuídos com RMI e CORBA • Suporte para acesso a arquivos remotos, banco de dados, etc... 12 Java é Robusta • Ausência de ponteiros • Fortemente tipada • Coleta de lixo automática • Exceções tipadas • Acesso a arrays é verificado • Variáveis são inicializadas automaticamente 13 Processo de Compilação em Java 14 Código Fonte (arquivos .java) Compilador (comando javac) Bytecode (arquivos .class) 15 Bytecode (arquivos .class) Máquina Virtual Java Código NativoInterpretador (comando java) Sistema Operacional Processo de Compilação em Java Máquina Virtual Java • JVM é dependente de plataforma • Processa os bytecodes que são independentes de plataforma • Existem diversas VMs de diversos fornecedores • Cada VM deve ser capaz de executar qualquer classe compilada java (bytecode) – “Escreva uma vez e rode em qualquer lugar” 16 Máquina Virtual Java (cont...) 17 JVM PC - Windows JVM IBM - Aix JVM Sun - Solaris Bytecodes Máquina Virtual Java (cont...) • Coleta de Lixo – Memória alocada que não é mais utilizada deve ser liberada – Em outras linguagens, desalocar memória é responsabilidade do programador – Java provê um mecanismo que monitora e libera memória 18 Máquina Virtual Java (cont...) • Coleta de Lixo (cont...) – Garbage Collector • Checa e libera memória que não é mais utilizada • Acontece automaticamente. O programador esta livre de gerenciar a liberação de memória • Pode variar entre JVMs de diferentes fabricantes 19 Máquina Virtual Java (cont...) • Onde encontrar uma JVM? – Gratuitamente e direto do fabricante • Sun Microsystems (www.java.sun.com) – Na página, podem ser baixados o JRE e o SDK • O JRE é o ambiente para máquinas que irão apenas “rodar” programas Java • SDK ou JSDK é o ambiente para desenvolvedores (JVM, compilador, debugger, etc) 20 Máquina Virtual Java (cont...) 21http://java.sun.com/j2se/1.5.0/docs/index.html Primeiro Programa em Java • Formado por 3 elementos básicos – Declaração de pacotes – Utilização de “imports” – Definições de classe O programa OlaMundo em Java public class OlaMundo { public static void main (String args[]){ System.out.println(“Ola Mundo!”); } } 22 Primeiro Programa em Java Compilação • javac OlaMundo.java • Geração do OlaMundo.class Execução • java OlaMundo <Argumentos> Resultado • “Ola Mundo!” 23 Programação Orientada a Objetos (Cód. ES006 / Sem. 2011-2 ) Universidade Federal do Ceará – UFC Campus de Quixadá Engenharia de Software Prof. Lincoln Souza Rocha (lincolnrocha@ufc.br)
Compartilhar