Академический Документы
Профессиональный Документы
Культура Документы
Histria
1991: Projeto de uma linguagem (na Sun, por
Patrick Naughton e James Gosling) para
equipamentos de consumo (Projeto Green)
Linguagem enxuta
e independente de arquitetura de hardware
Histria
Orientao a objeto: inspirao no C++, devido a
experincia com Unix
Primeiros prottipos:
Controle remoto (com poder de processamento de
uma Sparc Station)
Comutador de TV a cabo
Histria
1995: incio do uso de Java na Internet
Por ser uma linguagem multi-plataforma e incluir
aspectos especficos como
Programao em rede
Conectividade com BD
Multi-processamento
Segurana, etc
Histria
Verses do Java SE:
J2SE 1.02 de 1996
Invocao remota de mtodos (objetos distribudos)
Conectividade com bancos de dados
Plataformas
Java SE (Standard Edition)
Para aplicaes em desktops e servidores
java.sun.com/javase/
Linguagem C
/* cdigo-fonte C */
int main()
{
Mova(personagem1, ...);
system("pause");
}
void outras_funcoes()
{ int outras_funcoes()
{ ...
...
}
}
ou
Compilador
ou
Arquivos com
cdigo-objeto
(extenso .obj)
01011101
10010101
10111010
10010011
01011101
01011101
10010101
10010101
10111010
10111010
10010011
10010011
Editor de ligaes
(linkeditor)
Programao Orientada a
Objeto
Arquivo
com cdigo
executvel
(extenso .exe)
01011101
10010101
10111010
10010011
Exclusivo para
uma arquitetura
especfica
7
class OutraClasse()
{ int outras_funcoes()
{ ...
...
}
}
(extenso .java)
Compilador
Arquivos com
bytecode
Carga e
execuo
de classes
Programao Orientada a
Objeto
01011101
10010101
10111010
10010011
01011101
01011101
10010101
10010101
10111010
10111010
10010011
10010011
Mquina Virtual
Java
Udo Fritzke Jr. PUC Minas
BlueJ
Ferramenta para desenvolvimento em Java
que tem como objetivo oferecer um contato
direto do programador com objetos
Foi desenvolvida pela Deakin University,
Melbourne (Australia) e pela University of Kent
at Canterbury (Reino Unido)
www.bluej.org
Programao Orientada a
Objeto
10
Classes
Forma geral de uma definio de classe em Java
class nome-classe {
tipo var-instancia1;
Atributos
tipo var-instancia2;
tipo var-instanciaN;
tipo nome-mtodo1 (lista-de-parametros) {
corpo do mtodo;
}
tipo nome-mtodo2 (lista-de-parametros) {
corpo do mtodo;
}
tipo nome-mtodoN (lista-de-parametros) {
corpo do mtodo;
}
}
Programao Orientada a
Objeto
Mtodos
11
Atributos
Atributos so variveis de instncia de uma
classe
So declaradas como variveis (similar ao C)
tipo nome_var_instancia;
Tipo primitivo (int, long,
float, double,
byte,
char, etc.) ou
Tipo classe (Produto,
String, etc.)
Programao Orientada a
Objeto
12
Atributos
O contedo destas variveis definem valores
para os atributos de uma instncia de classe
Ao conjunto de valores dos atributos de uma
classe podemos chamar de estado do objeto
Programao Orientada a
Objeto
13
Mtodos
Os mtodos de uma classe definem o
comportamento dos objetos de uma classe
Por isso so implementados de forma similar a
funes em C
Mtodos so implementaes das operaes
definidas em um modelo de classes
Programao Orientada a
Objeto
14
Mtodos
T
onde
T o tipo do valor retornado (return valor;)
T1, T2,... so os tipos dos parmetros
formais p1, p2 , ...
Texto define o comportamento (instrues e
definio de variveis locais) do mtodo
Programao Orientada a
Objeto
15
Classe de Objetos
Diagrama UML (Unified Modeling Language) para classes
nome da classe
atributo
operao/mtodo
classe de objetos
Programao Orientada a
Objeto
16
Classe de Objetos
Diagrama UML para classes
nome da classe
atributos
operaes/mtodos
classe de objetos
Programao Orientada a
Objeto
17
Objetos
Um objeto uma instncia de uma classe
Em um programa em Java, um objeto
normalmente representado como uma
estrutura de dados e funes mantidas na
memria do sistema
Programao Orientada a
Objeto
18
Objetos
A partir de uma classe podem ser instanciados
tantos objetos quanto forem necessrios
Desde que as restries de espao em memria
sejam respeitados
Programao Orientada a
Objeto
19
Construo de Objetos
Carregar o exemplo BlueJ_exec_1
Classe
BlueJ
Programao Orientada a
Objeto
BlueJ_exec_1
20
Construo de Objetos
class Produto
{
Atributos / Propriedades /Caractersticas
float preco;
String tipo;
String descricao;
Mtodos/Operaes
String codigo;
Produto p;
Produto(String tip, String descr){
tipo=tip;
descricao=descr;
}
String getDescricao(){ return descricao; }
void setDescricao(String d) {descricao = d;}
String getTipo(){return tipo;}
void setTipo(String t){tipo = t;}
...
BlueJ BlueJ_exec_1
}
Programao Orientada a
Objeto
21
Construo de Objetos
Observar o comando de instanciao de classes
BlueJ_exec_1
22
Construo de Objetos
Instanciar a classe Produto algumas vezes e
observar as diferenas entre classe e objeto
(instncia de classe):
A classe Produto define as caractersticas de
um produto
As instncias (objetos) representam os
produtos propriamente ditos (livros, CDs,
DVDs, etc.)
BlueJ
Programao Orientada a
Objeto
BlueJ_exec_1
23
Construo de Objetos
Observar os estados de cada instncia utilizando o
comando Inspect do BlueJ
BlueJ_exec_1
24
Construo de Objetos
Quando um objeto criado pelo operador new,
executado o mtodo construtor definido na classe
do objeto
BlueJ
Programao Orientada a
Objeto
BlueJ_exec_1
25
Construo de Objetos
Nos mtodos construtores so definidos
procedimentos de inicializao do objeto, como por
exemplo
Definio de valores iniciais de atributos
Alocao de recursos que o objeto necessita (arquivos,
conexes com banco de dados, etc.)
Criao de outros objetos, etc.
BlueJ_exec_1
26
Construo de Objetos
class Produto
{
Mtodos construtores
...
Produto(String tip, String descr)
{
tipo=tip;
descricao=descr;
}
Produto(String tip, String descr, float pr)
{
tipo=tip;
descricao=descr;
preco = pr;
codigo = "1";
}
...
BlueJ BlueJ_exec_1
}
Programao Orientada a
Objeto
27
Construo de Objetos
Se no for programado um construtor para uma
classe, o Java providenciar um construtor padro,
sem parmetros
Quando o objeto criado com new o construtor
padro inicializar
todos os campos numricos com zero
todas as variveis objeto referenciaro null
e todas as variveis lgicas sero false
BlueJ
Programao Orientada a
Objeto
BlueJ_exec_1
28
Construo de Objetos
Desta forma, o programador pode definir variveisobjeto e inicializ-las com novos objetos
Uma varivel-objeto uma varivel, cujo tipo uma
classe
Variveisobjeto
class Teste
{
Teste(){
Produto p1 = new Produto("Eletrodomestico",
"Liquidificador");
Produto p2 = new Produto("Eletrodomestico",
"Liquidificador", 100.00F);
}
Tipo das
BlueJ BlueJ_exec_1
}
variveis
Programao Orientada a
Objeto
29
Responda
De acordo com o cdigo-fonte da classe
Produto, quais comandos de instanciao de
objeto so corretos?
a) Produto p1 = new Produto("Eletrodomestico", "Liquidificador");
b) Produto p2 = new Produto("Eletrodomestico", "Liquidificador",
100.00F);
c) Produto p3 = new Produto("Eletrodomestico");
d) Produto p4 = new Produto();
BlueJ
Programao Orientada a
Objeto
BlueJ_exec_1
30
BlueJ_exec_1
31
p1
null
Declarao inicializada
Produto p2 =
new Produto(
"Limpeza",
"Detergente");
Programao Orientada a
Objeto
p2
BlueJ
BlueJ_exec_1
32
Operador .
Permite o acesso a atributos e mtodos de
instncia de uma classe
referncia-a-objeto . nome-atributo
referncia-a-objeto . nome-mtodo
p2.preco = 155;
p2.setDescricao(pneu 195/55/r15);
BlueJ
Programao Orientada a
Objeto
BlueJ_exec_1
33
Chamada de mtodos
Observar o uso dos mtodos get e set a partir de
instncias da classe Produto
Tente invoc-los a partir da classe
Tente invoc-los a partir de uma instncia
BlueJ
Programao Orientada a
Objeto
BlueJ_exec_1
34
Chamada de mtodos
Esta instncia considerada como o objeto alvo do
mtodo
Quando um mtodo executado, as variveis de
instncia pertencem a este objeto alvo, neste caso
chamado de instncia corrente
Posteriormente veremos que alguns mtodos no
precisam de um objeto alvo: os mtodos estticos
Programao Orientada a
Objeto
35
Objeto
Representao UML
nome da instncia
nome da classe
do objeto
atributos
Programao Orientada a
Objeto
36
Responda
Quantas referncias para objetos so definidas
pelo trecho de programa em Java abaixo?
BlueJ
Programao Orientada a
Objeto
BlueJ_exec_1
37
Responda
Quantas instncias de objeto so criadas pelo
trecho de programa em Java abaixo?
BlueJ
Programao Orientada a
Objeto
BlueJ_exec_1
38
Responda
Quantos objetos alvo so manipulados pelas
chamadas de mtodo do trecho de programa
em Java abaixo?
BlueJ
Programao Orientada a
Objeto
BlueJ_exec_1
39
Responda
Quais das afirmaes sobre classes e objetos abaixo so
CORRETAS?
I.
II.
40
Bibliografia
Barnes, D. J., Klling, M.. Programao orientada a
objetos com Java Uma introduo prtica usando o
BlueJ. 4a. Edio. Pearson-Prentice Hall. Captulo 2.
2009.
Horstmann C. S, Cornell, G.. Core Java 2, Volume 1
Fundamentos. Makron Books. Captulo 4. 1999.
Cornell, Gary; Horstmann, Cay S. Core Java - Volume
1 - Fundamentos - 8 Ed. So Paulo. Pearson
Education do Brasil. Captulo 4. 2010.
Programao Orientada a
Objetos
41
Material Complementar
Tutoriais Java:
http://docs.oracle.com/javase/tutorial/
http://en.wikipedia.org/wiki/Java_virtual_machi
ne
Programao Orientada a
Objeto
42