Você está na página 1de 33

JAVA ENTERPRISE EDITION

Aula 1 Reviso dos Conceitos de OO e Java


Guylerme Figueiredo

Orientao a Objetos
Paradigma de programao Materializar o problema e envolvidos em objetos Abstrao do mundo real em objetos

Orientao a objeto
Principais conceitos Classe Objeto Atributo Mtodo Encapsulamento Herana Interface Classe Abstrata Polimorfismo

Orientao a Objetos
Classe a descrio de um grupo de objetos com propriedades similares (atributos), comportamento comum(operaes) , relacionamentos com outros objetos e semnticas idnticas.

Objeto Um objeto possui um estado, exibe um comportamento bem-definido e possui uma identidade nica Instncia da classe

Orientao a Objetos
Atributos Caractersticas Mtodos Responsabilidades

Orientao a Objetos
Encapsulamento Esconder os detalhes da implementao de um objeto

Orientao a Objetos
Herana um mecanismo existente no paradigma orientado a objetos que permite a reutilizao da estrutura e do comportamento de uma classe ao se definir novas classes; A herana tambm conhecida como relacionamento -um; A classe que herda o comportamento chamada de subclasse e a que definiu o comportamento superclasse.

Orientao a Objetos
Herana Mltipla

Nota: Em Java, Herana Mltipla s possvel com uso

de Interfaces

Orientao a Objetos
Herana Extends
Classe Somente 1

Implements
Interface

Vrias

Orientao a Objetos
Interface Contrato Classe puramente abstrata Estabelece os contratos que devem ser seguido por todos os filhos
public interface Int1{...

Orientao a Objetos
Classe Abstrata No pode ser instaciada Deve possuir pelo menos 1 mtodo abstrato
public abstract class Class 1...

Orientao a Objetos
Polimorfismo a habilidade de variveis terem mais de um tipo. Assumir forma diferente
Cast (Class1) Class2 Sobrescrita Implementar um mtodo herdado de uma forma diferente

Colees
Classes e colees do pacote java.util Representam Listas, Conjuntos e Mapas Soluo flexvel para armazenar objetos ( arrays. Ex.

String[])
Menos eficiente que array
No aceita tipo primitivo

Colees

Colees

Colees

Colees
Principais interfaces de coleo List Set Principais mtodos boolean add(Object o): adiciona objeto na coleo boolean contains(Object) o boolean isEmpty() Iterator iterator(): retorna iterator boolean remove(Object o) int size(): retorna o nmero de elementos Object[] toArray(Object[]): converte coleo em Array

Colees - List
Vector ArrayList LinkedList Sincronizado X X Seqencial

Mtodos estticos importantes binarySearch(List list, Object key) - Busca um determinado elemento de uma lista em ordem crescente usando o algoritmo de busca binria sort(List list) - Ordena uma lista usando MergeSort

Colees - Set
Principais subclasses HashSet TreeSet

Colees Map
Chaves nicas Mtodos princiais

void put(Object key, Object value) Object get(Object key) Set keySet(): retorna um Set de chaves Collection values(): retorna uma Collection de valores
Sincronizado Ordenado Aceita null como chave

Hashtable HashMap TreeMap

X X x

Conceito - Java
Java Linguagem de Programao Orientada a

Objetos, fortemente tipada e multiplataforma (WORA Write Once, Run Anywhere)

Caractersticas
Principais Caractersticas:
Orientada a Objetos Portabilidade Recursos de Rede Segurana

Caractersticas
Alm disso, podem-se destacar outras vantagens apresentadas pela

linguagem:
Sintaxe similar a C/C++ Facilidades de Internacionalizao - Suporta nativamente caracteres Unicode Simplicidade na especificao, tanto da linguagem como do "ambiente" de

execuo (JVM)
distribuda com um vasto conjunto de bibliotecas (ou APIs) Possui facilidades para criao de programas distribudos e multitarefa (mltiplas

linhas de execuo num mesmo programa)


Desalocao de memria automtica por processo de coletor de lixo
Carga Dinmica de Cdigo - Programas em Java so formados por uma coleo de

classes armazenadas independentemente e que podem ser carregadas no momento de utilizao

Conceito - Java
Principais distribuies do Java Standard Edition Aplicaes Desktop Enterprise Edition Aplicaes Corporativas Micro Edition Aplicaes Mveis (celulares, tablets, etc) Cada distribuio fornece um conjunto de APIs para o

desenvolvimento

Conceito - Java
Compilada para bytecodes e executado por uma mquina

virtual

Conceito - Java
Bytecode o cdigo de mquina que roda em qualquer

mquina atravs da Mquina Virtual Java (JVM) Texto contendo cdigo escrito em linguagem Java traduzido em bytecode atravs do processo de compilao e armazenado em um arquivo *.class chamado de Classe Java

Conceito - Java
Maquina Virtual "Mquina imaginria implementada como uma aplicao de software em uma mquina real" [JVMS] A forma de execuo de uma aplicao depende:
da origem do cdigo a ser executado (remoto ou local) da forma como foi implementada a JVM pelo fabricante (usando

tecnologia JIT, HotSpot, etc.)

Conceito - Java
Class Loader Para carregar a aplicao seguindo os passos: 1. Carrega primeiro as classes nativas do JRE (APIs) 2. Depois carrega extenses do JRE: JARs em $JAVA_HOME/jre/lib/ext e classes em $JAVA_HOME/jre/lib/classes 3. Carrega classes do sistema local (a ordem dos caminhos no CLASSPATH define a precedncia) 4. Por ltimo, carrega possveis classes remotas CLASSPATH: varivel de ambiente local que contm todos os

caminhos locais onde o Class Loader pode localizar classes


A CLASSPATH lida depois, logo, suas classes nunca substituem as

classes do JRE (no possvel tirar classes JRE do CLASSPATH) Classes remotas so mantidas em rea sujeita verificao CLASSPATH pode ser redefinida atravs de parmetros durante a execuo do comando java

Conceito - Java
Bytecode Verifier Etapa que antecede a execuo do cdigo em classes carregadas atravs da rede
Class Loader distingue classes locais (seguras) de classes remotas

(potencialmente inseguras)
Verificao garante
Aderncia ao formato de arquivo especificado [JVMS]
No-violao de polticas de acesso estabelecidas pela aplicao No-violao da integridade do sistema Ausncia de estouros de pilha Tipos de parmetros corretamente especificados e ausncia de

converses ilegais de tipos

Conceito - Java
Garbage Collector (Coletor de Lixo) Memria alocada em Java no liberada pelo programador
Ou seja, objetos criados no so destrudos pelo programador

A criao de objetos em Java consiste de


1. Alocar memria no heap para armazenar os dados do objeto 2. Inicializar o objeto (via construtor)

3. Atribuir endereo de memria a uma varivel (referncia)

Mais de uma referncia pode apontar para o mesmo objeto

Conceito - Java
Garbage Collector (Coletor de Lixo) Quando um objeto no tem mais referncias apontando para ele, seus dados no mais podem ser usados, e a memria deve ser liberada. O coletor de lixo ir liberar a memria na primeira oportunidade

Ambiente de Execuo e Desenvolvimento


Java 2 System Development Kit (JSDK) Coleo de ferramentas de linha de comando para, entre outras tarefas, compilar, executar e depurar aplicaes Java Para habilitar o ambiente via linha de comando preciso colocar o caminho $JAVA_HOME/bin no PATH do sistema Java Runtime Environment (JRE) Tudo o que necessrio para executar aplicaes Java Parte do J2SDK e das principais distribuies Linux, MacOS X, AIX, Solaris, Windows 98/ME/2000 (exceto XP) Varivel JAVA_HOME (opcional: usada por vrios frameworks) Defina com o local de instalao do Java no seu sistema. Exemplos:
Windows: set JAVA_HOME=c:\j2sdk1.4.0 Linux: JAVA_HOME=/usr/java/j2sdk1.4.0 export JAVA_HOME

JSDK
O JSDK (Java System Development Kit) o ambiente

padro distribudo pela Sun para desenvolvimento de aplicaes Java


O J2SDK consiste de JRE (Java Runtime Environment) - tambm distribudo separadamente: ambiente para execuo de aplicaes Ferramentas para desenvolvimento: compilador, debugger, gerador de documentao, empacotador JAR, etc. Cdigo-fonte das classes da API Demonstraes de uso das APIs, principalmente Applets, interface grfica com Swing e recursos de multimdia A documentao distribuda separadamente