Você está na página 1de 35
Linguagem Linguagem Orientada Orientada aa Objeto Objeto Java Java Bruno Bruno Bastos Bastos Neves Neves Mat:09/41000
Linguagem
Linguagem Orientada
Orientada aa Objeto
Objeto
Java
Java
Bruno
Bruno Bastos
Bastos Neves
Neves
Mat:09/41000
Mat:09/41000
Jussie
Jussie Marques
Marques Martins
Martins
Mat:09/52516
Mat:09/52516
Kamila
Kamila Borges
Borges Nogueira
Nogueira
Mat:09/11348
Mat:09/11348
Paulo
Paulo Henrique
Henrique Cabral
Cabral
Mat:09/47431
Mat:09/47431
07/12/09
07/12/09
 Projeto Green da Projeto Green da  EmEm 1991; 1991;  Software Software para 
Projeto Green da
Projeto Green da
 EmEm 1991;
1991;
 Software
Software para
 Baixo
Baixo uso
 Baixo
Baixo custo
custo
 Internet
Internet 1993
1993
07/12/09
07/12/09
 Projeto Green da Projeto Green da  EmEm 1991; 1991;  Software Software para 

Histórico

Histórico

Sun

Sun

para eletrodomésticos

eletrodomésticos

uso dede memória

memória

1995: A Sun lança o

1995: A Sun lança o

Java 1.0

Java 1.0

Características Características  Totalmente Totalmente aberta; aberta;  Independente de plataforma ou sistema operacional - Independente
Características
Características
 Totalmente Totalmente aberta; aberta;
 Independente de plataforma ou sistema operacional -
Independente de plataforma ou sistema operacional -
Portável;
Portável;
 Orientada Orientada aa objetos; objetos;
 Linguagem Linguagem interpretada; interpretada;
 Multiprocessada; Multiprocessada;
 Robusta Robusta ee segura; segura;
 Alto desempenho (para linguagem interpretada).
Alto desempenho (para linguagem interpretada).
07/12/09
07/12/09
Características Características  Plataformas Java (SE, EE, ME); Plataformas Java (SE, EE, ME);  Java Java
Características
Características
 Plataformas Java (SE, EE, ME);
Plataformas Java (SE, EE, ME);
 Java
Java Standard
Standard Edition;
Edition;
 Java
Java Enterprise
Enterprise Edition;
Edition;
 Java
Java ME;
ME;
 Ambiente
Ambiente dede Desenvolvimento:
Desenvolvimento:
 Java System Development Kit (JSDK);
Java System Development Kit (JSDK);
 Ambiente
Ambiente dede Execução:
Execução:
 Java Runtime Environment (JRE)
Java Runtime Environment (JRE)
07/12/09
07/12/09
Portabilidade Portabilidade  Linguagem tanto compilada quando interpretada  Código fonte  compilado para Java bytecode.
Portabilidade
Portabilidade
 Linguagem tanto compilada quando interpretada
 Código fonte
 compilado para Java bytecode.
 interpretado pela plataforma da Java Virtual Machine
(JVM)
07/12/09
07/12/09
Java  máquina máquina real real 07/12/09 07/12/09
Java
máquina
máquina real
real
07/12/09
07/12/09
Machine
Machine

Java Virtual

Virtual Machine

Máquina imaginária

Máquina imaginária

implementada como

implementada como

uma aplicação de software em uma

uma aplicação de software em uma

Interpreta o bytecode gerado na

Interpreta o bytecode gerado na

compilação de um programa Java

compilação de um programa Java

Alocação Alocação dede Memória Memória  Memória é alocada quando ocorre Memória é alocada quando ocorre
Alocação
Alocação dede Memória
Memória
 Memória é alocada quando ocorre
Memória é alocada quando ocorre
 Inicialização Inicialização de de um um objeto objeto via via construtor construtor
 Atribuída Atribuída uma uma região região de de memória memória a a uma uma variável variável
(referência). (referência).
 Mais de uma variável pode apontar para uma
Mais de uma variável pode apontar para uma
mesma
mesma região
região dada memória.
memória.
 Liberação de memória realizada pelo
Liberação de memória realizada pelo
Garbage
Garbage Collector
Collector
07/12/09
07/12/09
Tipos Tipos dede variáveis variáveis • Tipos primitivos: fazem parte da Tipos primitivos: fazem parte da
Tipos
Tipos dede variáveis
variáveis
Tipos primitivos: fazem parte da
Tipos primitivos: fazem parte da
linguagem Java. Seu nome são palavras-
linguagem Java. Seu nome são palavras-
reservadas reservadas emem Java. Java.
Tipos objetos: são criadas a partir do
Tipos objetos: são criadas a partir do
instanciamento de classes.
instanciamento de classes.
Arrays (vetores): são objetos que contém
Arrays (vetores): são objetos que contém
diversos elementos de um mesmo tipo.
diversos elementos de um mesmo tipo.
07/12/09
07/12/09
Tipos boolean boolean –– true true ouou false false byte – numérico inteiro de 8 bits:
Tipos
boolean
boolean –– true
true ouou false
false
byte – numérico inteiro de 8 bits:
byte – numérico inteiro de 8 bits:
int
int –– numérico
numérico inteiro
inteiro dede 3232 bits:
07/12/09
07/12/09
Tipos boolean boolean –– true true ouou false false byte – numérico inteiro de 8 bits:

2 63 -1

Tipos primitivos

primitivos

-2

-

7

a

15

a

2 7 -1

a

short – numérico inteiro de 16 bits: -2

short – numérico inteiro de 16 bits: -

2 15 -1

bits: --2 31

2 31 -1

a

32 bits

long – numérico inteiro de 64 bits: -2 63

long – numérico inteiro de 64 bits: -

float – numérico de ponto flutuante de

float – numérico de ponto flutuante de 32 bits

double – numérico de ponto flutuante

double – numérico de ponto flutuante

de 64 bits

de 64 bits

char – caractere unicode representado por um inteiro de 16 bits sem sinal

char – caractere unicode representado por um inteiro de 16 bits sem sinal

Tipos Tipos Objetos Objetos • São criados a partir do instanciamento de São criados a partir
Tipos
Tipos Objetos
Objetos
São criados a partir do instanciamento de
São criados a partir do instanciamento de
uma
uma classe.
classe.
São construídos da seguinte forma:
São construídos da seguinte forma:
Aluno manoel = new Aluno(“grad”);
Aluno manoel = new Aluno(“grad”);
07/12/09
07/12/09
Arrays Arrays • São “vetores” que podem conter qualquer São “vetores” que podem conter qualquer tipo
Arrays
Arrays
São “vetores” que podem conter qualquer
São “vetores” que podem conter qualquer
tipo
tipo dede variáveis;
variáveis;
Não pode ser armazenado, em um mesmo
Não pode ser armazenado, em um mesmo
array, variáveis de tipos diferentes;
array, variáveis de tipos diferentes;
Pode ser composto tanto com tipos
Pode ser composto tanto com tipos
primitivos como com tipos objeto.
primitivos como com tipos objeto.
07/12/09
07/12/09
Arrays Arrays Forma Forma dede declaração: declaração: int arrayDeInts[] = new int[156]; int arrayDeInts[] = new
Arrays
Arrays
Forma Forma dede declaração: declaração:
int arrayDeInts[] = new int[156];
int arrayDeInts[] = new int[156];
String[] arrayDeStrings = new
String[] arrayDeStrings = new
String[13];
String[13];
07/12/09
07/12/09
Passando Passando variáveis variáveis p/ p/ métodos métodos Passagem é sempre por valor Ou seja, é
Passando
Passando variáveis
variáveis p/
p/ métodos
métodos
Passagem é sempre por valor
Ou seja, é passada uma cópia do valor.
Para variáveis de referência (de objetos), a
referência também é passada por valor.
void montaCarro(String modelo) {
void montaCarro(String modelo) {
Carro
Carro meuCarro
meuCarro == new
new Carro(modelo);
Carro(modelo);
mudaCor(meuCarro,
mudaCor(meuCarro, “cinza”);
“cinza”);
}}
Void mudaCor(Carro c, String cor) {
Void mudaCor(Carro c, String cor) {
c.abastece(); c.abastece();
cc == new
new Carro(“Gol”);
Carro(“Gol”);
}}
07/12/09
07/12/09
Condicionais Condicionais if-else if-else Uma Uma linha linha if (expressão booleana) instrução ; UmUm bloco bloco
Condicionais
Condicionais
if-else
if-else
Uma
Uma linha
linha
if (expressão booleana) instrução ;
UmUm bloco
bloco
if (expressão booleana) {
instruções;
}
UmUm bloco
bloco if-else
if-else
if (expressão booleana) {
instruções;
} else {
instruções
}
05/01/10
05/01/10
1414
Condicionais Condicionais if-else: if-else: UmUm bloco bloco if-else if-else if-else if-else if (expressão booleana) { instruções;
Condicionais
Condicionais
if-else:
if-else:
UmUm bloco
bloco if-else
if-else if-else
if-else
if (expressão booleana) {
instruções;
} else if (expressão booleana){
instruções
} else {
instruções
}
Expressões
Expressões booleanas:
booleanas:
if (temEspaco = true)
if (temEspaco = true)
// Será sempre verdadeiro
// Será sempre verdadeiro
ifif (++cont
(++cont >> 10)
10) ...
...
if ( (x>0) && (x<10) || isImpar(x) ) ...
if ( (x>0) && (x<10) || isImpar(x) ) ...
05/01/10
05/01/10
1515
Condicionais Condicionais switch switch Simula o uso de várias instruções if. Simula o uso de várias
Condicionais
Condicionais
switch
switch
Simula o uso de várias instruções if.
Simula o uso de várias instruções if.
int opcao = menu.opcaoSelecionada();
switch(opcao) {
case 1:
iniciaJogo();
break;
case 2:
abreAjuda();
break;
case 4:
salvaJogo();
case 5:
saiJogo();
break;
}
05/01/10
05/01/10
1616
Loops Loops while while Adequado quando não se sabe quantas vezes o bloco Adequado quando não
Loops
Loops
while
while
Adequado quando não se sabe quantas vezes o bloco
Adequado quando não se sabe quantas vezes o bloco
deve
deve ser
ser repetido.
repetido.
int cont = 0;
while (x < y) {
x++;
y--
cont++;
}
Dependendo do resultado da condição testada, o corpo
Dependendo do resultado da condição testada, o corpo
do loop pode não ser executado.
do loop pode não ser executado.
05/01/10
05/01/10
1717
Loops Loops do-while do-while Adequado quando o loop precisa ser executado pelo Adequado quando o loop
Loops
Loops
do-while
do-while
Adequado quando o loop precisa ser executado pelo
Adequado quando o loop precisa ser executado pelo
menos uma vez, porque a condição é testada
menos uma vez, porque a condição é testada
sempre
sempre depois
depois dodo loop.
loop.
int idade;
do {
idade = perguntaIdadeUsuario();
} while(idade < 0);
05/01/10
05/01/10
1818
Loops Loops for for Adequado se sabe quantas vezes o loop deverá ser Adequado se sabe
Loops
Loops
for
for
Adequado se sabe quantas vezes o loop deverá ser
Adequado se sabe quantas vezes o loop deverá ser
executado.
executado.
A declaração possui 3 partes principais (não
A declaração possui 3 partes principais (não
obrigatórios):
obrigatórios):
Declaração e inicialização de variáveis
Declaração e inicialização de variáveis
Expressão booleana (teste condicional)
Expressão booleana (teste condicional)
Expressão
Expressão dede iteração
iteração
int somatorio;
for (int i = 0; i <= 10; i++) {
somatorio += i;
}
05/01/10
05/01/10
1919
Loops Loops break break Utilizados dentro de loops ou switch. Utilizados dentro de loops ou switch.
Loops
Loops
break
break
Utilizados dentro de loops ou switch.
Utilizados dentro de loops ou switch.
Exncerra a execução do loop, continuando execução após o
Exncerra a execução do loop, continuando execução após o
bloco
bloco dodo loop.
loop.
continue
continue
Utilizado
Utilizado dentro
dentro dede loops.
loops.
Encerra a iteração atual do loop e inicie a próxima iteração
Encerra a iteração atual do loop e inicie a próxima iteração
caso a condição booleana seja atendida.
caso a condição booleana seja atendida.
for (int i = 0; i < 20; i++) {
if (i%2 == 0) continue;
System.out.println(i);
}
05/01/10
05/01/10
2020
Classes Classes abstratas abstratas  Muitas vezes temos conceitos que se aplicam a todo um Muitas
Classes
Classes abstratas
abstratas
Muitas vezes temos conceitos que se aplicam a todo um
Muitas vezes temos conceitos que se aplicam a todo um
conjunto de classes, determinando comportamentos que
conjunto de classes, determinando comportamentos que
gostaríamos de herdar de uma superclasse, mas não faria
gostaríamos de herdar de uma superclasse, mas não faria
sentido instanciar objetos desta superclasse
sentido instanciar objetos desta superclasse
Definimos então esta superclasse como sendo abstrata
Definimos então esta superclasse como sendo
abstrata,, dede
modo que ela possa fornecer estado e comportamento
modo que ela possa fornecer estado e comportamento
para classes derivadas, ou utiliza-la como tipo de dados
para classes derivadas, ou utiliza-la como tipo de dados
para referências, mas não seja permitido criar instâncias
para referências, mas não seja permitido criar instâncias
As classes que podem ser instanciadas são denominadas
As classes que podem ser instanciadas são denominadas
classes
classes concretas
concretas
07/12/09
07/12/09
Método Método Virtual Virtual  Métodos virtuais foram criados para que as linguagens Métodos virtuais foram
Método
Método Virtual
Virtual
Métodos virtuais foram criados para que as linguagens
Métodos virtuais foram criados para que as linguagens
orientadas a objetos expressem o polimorfismo, ou seja, a
orientadas a objetos expressem o polimorfismo, ou seja, a
permissão de escrevermos um método em uma classe
permissão de escrevermos um método em uma classe
derivada com a mesma assinatura da classe base. Em
derivada com a mesma assinatura da classe base. Em
C#, para indicar que um método poderá ser escrito com a
C#, para indicar que um método poderá ser escrito com a
mesma assinatura em uma classe derivada, utilizamos a
mesma assinatura em uma classe derivada, utilizamos a
palavra reservada virtual na classe base e a palavra
palavra reservada virtual na classe base e a palavra
reservada override na classe derivada.
reservada override na classe derivada.
Em java não é preciso uso destas palavras reservadas,
Em java não é preciso uso destas palavras reservadas,
pois todos os métodos são Virtuais por defaut.
pois todos os métodos são Virtuais por defaut.
2222
Interfaces Interfaces  Interfaces são “esqueletos” de classes que não definem a implementação dos métodos, mas
Interfaces
Interfaces
 Interfaces são “esqueletos” de classes
que não definem a implementação dos
métodos, mas apenas as suas
assinaturas (nomes e argumentos)
 Interfaces não podem ter atributos
 Todos os métodos de uma interface são
implicitamente abstratos e públicos
 Funcionam como um contrato
2323
Encapsulamento Encapsulamento  Mecanismo de controle de acesso para Mecanismo de controle de acesso para atributos
Encapsulamento
Encapsulamento
Mecanismo de controle de acesso para
Mecanismo de controle de acesso para
atributos e métodos de uma classe(objeto
atributos e métodos de uma classe(objeto
instanciado). instanciado).
O conceito de encapsulamento está
O conceito de encapsulamento está
intimamente ligado ao conceito de
intimamente ligado ao conceito de
ocultação
ocultação dede informação.
informação.
2424
Encapsulamento Encapsulamento -- Vantagens: Vantagens:  proteção contra acessos indevidos de proteção contra acessos indevidos de
Encapsulamento
Encapsulamento -- Vantagens:
Vantagens:
proteção contra acessos indevidos de
proteção contra acessos indevidos de
outros
outros objetos;
objetos;
Esconder a estrutura interna
Esconder a estrutura
interna dodo objeto,
objeto,
tornando a interação simples e seguindo
tornando a interação simples e seguindo
um padrão, facilitando o entendimento por
um padrão, facilitando o entendimento por
outros programadores.
outros programadores.
2525
 Ocorre Ocorre nas   Membros public    Membros private Acessíveis somente nos
 Ocorre
Ocorre nas
Membros public
Membros private
Acessíveis somente nos métodos
Membros protected

pacote

JAVA: 2626
JAVA:
2626

Encapsulamento -- JAVA:

Encapsulamento

nas classes;

classes;

É implementado pelos modificadores de

É implementado pelos modificadores de

acesso: public, protected, private.

acesso: public, protected, private.

Acessíveis em qualquer lugar do programa

Acessíveis pela superclasse e pela subclasse

da própria classe

Não são acessíveis pelas subclasses

Proteção intermediária entre private e public

São acessíveis por métodos da superclasse, das subclasses, ou classes do mesmo

Encapsulamento Encapsulamento 2727
Encapsulamento
Encapsulamento
2727
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09

Herança;

Herança; Herança; Vinculação 07/12/09 07/12/09

Herança;

Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09

Vinculação

Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09
07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
07/12/09 07/12/09
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos
Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos

AsAs linguagens

Tipos dede dados

Tipos

devem

objetos devem

linguagens orientadas

orientadas aa objetos

Herança; Herança; Vinculação 07/12/09 07/12/09 • As As linguagens de de dados Tipos devem orientadas a

oferecer 3 recursos

oferecer 3 recursos

chaves:

chaves:

dados abstratos;

abstratos;

Vinculação dinâmica;

dinâmica;

Classes Classes • Modularização do código Modularização do código • Criada com a utilização da palavra
Classes
Classes
Modularização do código
Modularização do código
Criada com a utilização da palavra chave
Criada com a utilização da palavra chave
class antes do nome da Classe
class antes do nome da Classe
Composta de métodos (comportamento) e
Composta de métodos (comportamento) e
variáveis de instância (estado).
variáveis de instância (estado).
07/12/09
07/12/09
• Envia-se Envia-se uma invocar • que que retorna retorna o o método. método. • Cada
• Envia-se
Envia-se uma
invocar
que
que
retorna
retorna
o
o
método. método.
Cada
Cada
objeto
objeto
é
é
para para manipulá-los. manipulá-los.
07/12/09
07/12/09

invocar umum dede seus

objeto para para da da computação computação do do abstração abstração de de um um receber
objeto para
para
da
da
computação
computação
do
do
abstração
abstração
de
de
um
um
receber mensagens.
receber mensagens.

mensagem aa umum objeto

• Envia-se Envia-se uma invocar • que que retorna retorna o o método. método. • Cada

uma mensagem

seus métodos.

métodos.

valor

valor

uma

uma

Uma resposta a uma

Uma resposta a uma

mensagem é um objeto

mensagem é um objeto

computador pelo fato

computador pelo fato

dele armazenar dados

dele armazenar dados

e oferecer capacidades de processamento

e oferecer capacidades de processamento

Objetos podem enviar e

Objetos podem enviar e

• UmUm código-fonte • • 07/12/09 07/12/09 • O compilador criará um O compilador criará um
• UmUm código-fonte
07/12/09
07/12/09
O compilador criará um
O compilador criará um
plataforma plataforma utilizada. utilizada.
Java Virtual
JVM ((Java
AA JVM

Java

Java

Java. linguagem Java. implementada em implementada em
Java.
linguagem Java.
implementada em
implementada em

código-fonte éé criado,

criado, usando

usando aa linguagem

Ao executar, o compilador procurará por erros,

Ao executar, o compilador procurará por erros,

garantindo que tudo será executado corretamente.

garantindo que tudo será executado corretamente.

novo documento, codificado em

novo documento, codificado em

bytecode bytecode Java. Java. OO bytecode bytecode

é independente da

é independente da

Virtual Machine

Machine),

),

software, lerá e executará o bytecode.

software, lerá e executará o bytecode.

Herança Herança • Soluciona problemas com a reutilização de tipos Soluciona problemas com a reutilização de
Herança
Herança
Soluciona problemas com a reutilização de tipos
Soluciona problemas com a reutilização de tipos
dede dados dados abstratos. abstratos.
Um novo tipo de dados abstratos herdam os
Um novo tipo de dados abstratos herdam os
dados e as funcionalidades de tipos existentes.
dados e as funcionalidades de tipos existentes.
Funcionalidade que aumenta o poder da
Funcionalidade que aumenta o poder da
linguagem. linguagem.
07/12/09
07/12/09
Classe B Classe E Classe C Classe D 07/12/09 07/12/09
Classe B
Classe E
Classe C
Classe D
07/12/09
07/12/09
• Além Além dede herdar herdar entidades entidades dede sua sua classe classe pai, pai, uma
Além
Além dede herdar
herdar entidades
entidades dede sua
sua classe
classe pai,
pai,
uma
uma classe
classe derivada
derivada pode
pode acrescentar
acrescentar novas
novas
entidades e modificar métodos herdados.
entidades e modificar métodos herdados.
OO
novo
novo método
método sobrepõe-se
sobrepõe-se (override)
(override) àà
versão
versão herdada.
herdada.
A
A
sobreposição
sobreposição
fornece
fornece
uma
uma
operação
operação
específica a objetos da classe derivada.
específica a objetos da classe derivada.
07/12/09
07/12/09
Polimorfismo Polimorfismo ee vinculação vinculação dinâmica dinâmica • Variáveis do tipo da classe-pai referenciam Variáveis do
Polimorfismo
Polimorfismo ee vinculação
vinculação
dinâmica
dinâmica
Variáveis do tipo da classe-pai referenciam
Variáveis do tipo da classe-pai referenciam
objetos de qualquer uma das sub-classes da
objetos de qualquer uma das sub-classes da
mesma. mesma.
Quando um método sobresposto é chamado
Quando um método sobresposto é chamado
por
por
meio
meio
da
da
variável
variável
polimórfica,
polimórfica,
essa
essa
chamada
chamada
é
é
vinculada
vinculada
dinamicamente
dinamicamente
ao
ao
método método dada classe classe apropriada. apropriada.
07/12/09
07/12/09