Você está na página 1de 43

Faculdade Pitagoras

de Uberlndia
isciplinu
Progrumuo Orientudu u
Objetos 1 {POO)
Nauro Hemerly Cazzani
maurog@pitagoras.com.br
mauro.hemerly@gmail.com
Faculdade Pitagoras
de Uberlndia
Compreender os conceitos fundamentais do
Paradigma Orientado a Objetos
O aluno ao final do curso devera ser capaz de:
Entender os padroes da programaao orientada a objetos
Utilizar e entender o conjunto de funoes e comandos da
linguagem de programaao ]ava
Desenvolver sistemas aplicativos em linguagem ]ava
Objetivos
2
Faculdade Pitagoras
de Uberlndia
ontedo
1. !NTRODUO
1.1. Paradigma de programaao orientada a objetos
1.2. Origens e Caracteristicas da linguagem
1.3. Ambiente de desenvolvimento e execuao
1.4. Expressoes e comandos
2. ABSTRAO E CLASSES
2.1. Conceito de abstraao
2.2. Classes e instancias
2.3. Encapsulamento
3. CLASSES EN DETALHES
3.1. Relacionamentos entre Classes
3.2. Construtores
3.3. Sobrecarga
3.4. Atributos e mtodos de classe
3.S. Autoreferncia
3.6. Nodularizaao
3
Faculdade Pitagoras
de Uberlndia
ontedo
4. HERANA
4.1. Hierarquia de classes
4.2. Classes abstratas
4.3. Polimorfismo
S. EXCEOES EN DETALHES
S.1. Cerando exceoes
S.2. Criando exceoes
4
Faculdade Pitagoras
de Uberlndia
ibIiografia
arnes, D.]., Programaao Orientada a Objetos
com ]ava, Pearson Education, 2004.
Deitel, H.N. and Deitel, P.]., ]ava Como
Programar, Editora ookman, 200S.
Camarao, C., Programaao De Computadores
Em ]ava, Editora LTC, 2001.
Horstmann, Cay S., Core ]ava 2, Pearson
Education, 2001.
Sierra, K., Sun Certified Programmer S
Developer for ]ava 2 - Study Cuide, NcCraw
Hill, 2003.
S
Faculdade Pitagoras
de Uberlndia
vaIiao
2 Avaliaoes Bimestrais !ndividuais P1 e P2)
P1 = 10 P2 = 10
2 Avaliaoes Coletivas Bimestrais T1 e T2)
As avaliaoes T1 e T2 serao constituidas de varias atividades
coletivas. T1 = 10 T2 = 10
1B = P1 * 0,7 + T1 * 0,3 Primeira imestral)
2B = P2 * 0,7 + T2 * 0,3 Segunda imestral)
Ndia Final NF) = 1 + 2) / 2
Aprovaao: NF > 6,0 Reprovaao: NF < 4,0
Exame Final EF): 4,0 NF S,3
Nota Final !F): NF + EF) / 2 Aprovaao: NF > 6,0
6
Faculdade Pitagoras
de Uberlndia
1. !!TRODUO
1.1. Paradigma de programaao orientada a objetos
1.2. Origens e Caracteristicas da linguagem
1.3. Ambiente de desenvolvimento e execuao
1.4. Expressoes e comandos
7
Faculdade Pitagoras
de Uberlndia
ntroduo
]ava Linguagem e Plataforma de desenvolvimento
de software
http://www.oracle.com/technetwork/java/index.html
http://java.sun.com)
8
Faculdade Pitagoras
de Uberlndia
ntroduo
1332
A Sun criou um time conhecido como Creen Team) para desenvolver inovaoes tecnolgicas.
Esse time foi liderado por ]ames Cosling, considerado o pai do ]ava. Foi criada uma
linguagem para essa tecnologia chamada OAK.
133S
Lanamento pblico ]ava 1.0
1337
]DK 1.1.4 Sparkler)
1338
]2SE 1.2 Playground)
2000
]2SE 1.3 Kestrel)
2002
]2SE 1.4 Nerlin)
2004
]2SE S.0 Tiger)
2006
]ava SE 6 Nustang)
2008
]ava SE 7 Dolphin)
3
]ames Cosling trabalhou desde 1384 na Sun
Nicrosystems at abril de 2010, quando se demitiu
02/04/2010). Atualmente, conforme postou em
seu blog pessoal |1], Cosling esta em um periodo
de descanso, antes de buscar uma nova colocaao
no mercado.
]ames Cosling e Clenio Damasceno
Faculdade Pitagoras
de Uberlndia
!Iataforma Java
Fonte: java.sun.com
10
Faculdade Pitagoras
de Uberlndia
!Iataforma Java SE
07/11/200
11
Faculdade Pitagoras
de Uberlndia
mbiente de DesenvoIvimento
Eclipse !DE www.eclipse.org) - !N Naior projeto
opensource do mundo)
!eteans www.netbeans.org) - SU!
Sun Studio Creator e Sun Studio Enterprise
www.java.sun.com) SU!
]Developer www.oracle.com) - ORACLE
!ntelli] www.jetbrains.com)
]uilder www.codegear.com)
EditPlus
!otePad++
Etc
12
Faculdade Pitagoras
de Uberlndia
ompiIao
Todo cdigo ]ava escrito em arquivo texto.
Um compilador compila os fontes gerando arquivos de
bytecodes .class)
A execuao do programa necessita de uma instancia de uma
]vN na plataforma S.O e hardware) local que interpreta os
bytecodes.
O nome bytecode referese ao fato de que cada comando da
]vN tem cdigo de operaao OPCODE) de um byte
veja detalhes em
http]]homepages|nfedacuk]kwxm]IVM]code8yNohtm|
13
Faculdade Pitagoras
de Uberlndia
Execuo de um programa Java
Fonte: www.caleum.com.br
03
14
Faculdade Pitagoras
de Uberlndia
pIataforma Java
Programas ]ava sao executados interpretados) por
outro programa chamado ]ava vN. O programa
]ava interpretado pela ]ava vN para o S.O.
nativo. !sto significa que qualquer computador com
a ]ava vN instalada pode rodar programas ]ava,
nao importando o computador no qual a aplicaao
foi originalmente desenvolvida.
Por exemplo, um programa ]ava desenvolvido em
um PC com Windows !T rodara sem modificaoes
em uma estaao Sun Ultra workstation com S.O.
Solaris, e viceversa.
1S
Faculdade Pitagoras
de Uberlndia
!ortabiIidade
16
Faculdade Pitagoras
de Uberlndia
pIataforma Java
A plataforma ]ava consiste de interfaces para
programaao de aplicaoes ]ava application
programming interfaces - AP! ) e a maquina virtual
]ava ]ava virtual machine ]vN).
]ava AP!s sao bibliotecas de cdigo compilado que voc
pode usar em seus programas
17
Faculdade Pitagoras
de Uberlndia
Distribuies
]RE ]ava Runtime Environment)
]vN e AP!s
]DK ]ava Development Kit)
]vN e AP!s
Ferramentas de desenvolvimento linha de comando) -
compiladores, debugadores, etc
Fontes
O download do instalador do ]DK ou do ]RE pode
ser obtido em http://www.oracle.com/technetwork/java/index.html
O instalador da ]DK vem tambm com o instalador
da ]RE.
18
Faculdade Pitagoras
de Uberlndia
&ma apIicao java simpIes
//AloNundo.java
public class AloNundo {
public static void mainString a|])
{
System.out.printlnAlo Nundo"),
}
}
Para compilar no prompt de comandos):
c:/>meus_programas/javac AloNundo.java
comentario
nome da classe
Definiao do
mtodo main
13
Faculdade Pitagoras
de Uberlndia
&ma apIicao java simpIes
O compilador java gera o arquivo AloNundo.class,
que o programa compilado para bytecodes, a
linguagem da maquina ]ava.
Para executar o programa interpretaao) basta
digitar no prompt de comandos:
c:/>meus_programas/java AloNundo
E o resultado sera:
c:/>meus_programas/java AloNundo
Alo Nundo
07/11/200
20
Faculdade Pitagoras
de Uberlndia
Dissecando o cdigo
Comentarios dentro do cdigo
// resto da linha comentario
W Comentario ignorado pelo compilador
W Documenta cdigo
/ mltiplas linhas /
/ comentario de muitas
linhas. /
public class AloNundo
Comea definiao da classe AloNundo
W todo programa ]ava tem pelo menos uma classe definida pelo
programador
21
Faculdade Pitagoras
de Uberlndia
Dissecando o cdigo
!ome da classe um identificador
W Sequncia de Caracteres consistindo de letras, digitos,
underscores _ ) e dollar $ )
W !ao pode comear com um digito, e nao pode conter espaos
W Case sensitive
4 a1 e A1 sao diferentes
Palavra reservada public
W modificador de acesso, torna a classe, mtodo, variavel ou objeto
acessivel para todos
22
Faculdade Pitagoras
de Uberlndia
Dissecando o cdigo
Arquivo do cdigofonte
!ome do arquivo o nome da classe com extensao .java
AloNundo.java
Chave esquerda e direita { ... }
Contm a definiao da classe
public static void mainString a|])
Toda aplicaao comea a execuao pelo mtodo main
W Parenteses indica que main um mtodo
W Aplicaoes ]ava contm um ou mais mtodos
W Apenas um mtodo pode ter o nome main
23
Faculdade Pitagoras
de Uberlndia
Dissecando o cdigo
{
System.out.printlnAlo Nundo"),
}
System.out
Objeto de saida padrao
A saida a janela do prompt de comandos
Ntodo System.out.println
!mprime texto
Toda instruao termina com ,
A definiao ou corpo) do mtodo fica entre { ... }
24
Faculdade Pitagoras
de Uberlndia
Caracteres de escape
barra invertida \ )
W \n nova linha
W \r retorno de carro
W \" aspas duplas
W \t tabulaao
W \\ barra invertida
Uso
System.out.println em vindo\na\n]ava!" ),
Saida
em vindo
a
]ava!
Dissecando o cdigo
2S
Faculdade Pitagoras
de Uberlndia
Definindo classes ]ava
Objetos e ]ava Objetos e ]ava
Faculdade Pitagoras
de Uberlndia
Objetos
Objeto em software uma maneira de representar
as coisas do mundo real.
Objeto um modelo abstrato das coisas reais ou
virtuais) do mundo real.
Coisas tais como um cliente ou agenda de telefones
ou uma folha de pagamento ou uma tela com um
formulario ou at um simples botao de uma
interface grafica com o usuario.
27
Faculdade Pitagoras
de Uberlndia
Objetos
Objetos possuem:
!dentidade
W Cada objeto tem sua prpria existncia, ou seja, eles vivem na
memria do computador.
Estado
W Conjunto de caracteristicas com valores definidos
Comportamento
W Como eles reagem ao mundo. Tambm dizemos que sao as
mensagens que eles recebem. Ceralmente, um comportamento
altera o estado do objeto.
28
Faculdade Pitagoras
de Uberlndia
!rograma Orientado a Objetos
Caracteristicas de um programa OO
Tudo objeto
Um programa uma coleao de objetos colaborando
entre si atravs do envio de mensagens uns aos outros
Todo objeto possui um tipo que descreve seus dados)
Objetos de um determinado tipo podem receber as
mesmas mensagens
.
...
. .
23
Faculdade Pitagoras
de Uberlndia
Em ]ava tudo objeto, exceto alguns valores
primitivos
uma janela objeto, um botao de uma interface grafica
com o usuario um objeto, uma conexao com um banco
de dados um objeto, um programa um objeto, uma
palavra um objeto, ou seja, quase tudo exceto os
primitivos.
Tipos primitivos
!nteiros: byte, short, int, long
Reais: float, double
Caracter: char
Lgico: boolean
%ipos primitivos e tipo de objeto
Tipo Tamanho bits) valor default
byte 8 0
short 16 0
int 32 0
long 64 0
float 32 0.0
double 64 0.0
char 16 \u0000
boolean false
30
Faculdade Pitagoras
de Uberlndia
Literais de caracter
W char c = 'a',
W char z = '\u0041', // em Unicode
Literais inteiros
W int i = 10, short s = 1S, byte b = 1,
W long hexa = 0x3af0L, int octal = 0633,
Literais de pontoflutuante
W float f = 123.0f,
W double d = 12.3,
W double g = .1e23,
ExempIos de tipos primitivos e Iiterais
31
Faculdade Pitagoras
de Uberlndia
ExempIos de tipos primitivos e Iiterais
Literais booleanos
W boolean v = true,
W boolean f = false,
Literais de string nao tipo primitivo s uma
referncia)
W String s = "abcde",
Literais de vetor nao tipo primitivo v uma
referncia)
W int|] v = {S, 6},
32
Faculdade Pitagoras
de Uberlndia
Objetos
Em ]ava, objetos sao armazenados na memria e
manipulados atravs de uma referncia
Os objetos possuem valores que definem suas caracteristicas
estado), funoes que definem seu comportamento
mtodos) e identidade referncia)
Um programa ]ava nao manipula diretamente seus objetos.
Devese usar referencias aos objetos para usalos
!o livro Thinking in ]ava" de Bruce Eckel ele faz uma
analogia entre objetos e sua referncia e uma Tv e seu
controle remoto veja ilustraao na prxima transparncia)
33
Faculdade Pitagoras
de Uberlndia
Objeto e sua referncia
As variaveis em programas ]ava podem
armazenar dois tipos de valores:
1) valores primitivos
2) Referncias a objetos
memria RAN do computador
x = new objeto(),
x = 1,
A tv o objeto e o controle remoto a
referncia.
Acessamos a tv (enviando mensagens)
atravs do controle remoto
34
Faculdade Pitagoras
de Uberlndia
Classe um documento que descreve um tipo de
objeto
Uma classe representa um tipo de dados complexo
Classes descrevem
Tipos dos dados que compoem o objeto o que podem
armazenar)
Procedimentos que o objeto pode executar o que
podem fazer)
O que cIasse?
3S
Faculdade Pitagoras
de Uberlndia
onstruo de Iasses
Declaraao
|modificadores] class NomeClasse
|extends SuperClasse]
|implements !nterface]
{
atributos
mtodos
}
Nodificadores
Classe pblica public): a classe pode ser utilizada por
objetos de fora do pacote. Por default, a classe s pode
ser acessada no prprio pacote
Classe Abstrata abstract): nao pode ter objetos
instanciados
Classe final final): a classe nao pode ter subclasses
36
Faculdade Pitagoras
de Uberlndia
Declaraao de Atributos
W |modificador] |chaves] tipo nomeAtributo |= expressao],
Nodificador
public: o mundo inteiro pode acessar
protected: somente os mtodos da classe e de suas
subclasses podem acessar, ou ainda, estando na mesma
package
private: somente os mtodos da classe podem acessar o
atributo
Chaves
static: o atributo da classe, nao do objeto, logo, todos os
objetos da classe compartilham o mesmo valor deste atributo
final: o valor do atributo nao pode ser alterado constante)
transient: o atributo nao serializado nao persistente)
tributos da Iasse
37
Faculdade Pitagoras
de Uberlndia
todos da cIasse
Declaraao de Ntodos
[modificador] [chaves] tipoRetorno nomeMtodo (
[parmetros] ) [throws exceptions]
{
corpo do mtodo (logica)
}
38
Faculdade Pitagoras
de Uberlndia
chaves:
static: mtodo da classe e nao das instancias
abstract: utilizado somente em classes abstratas, o mtodo
nao tem corpo
final: o mtodo nao pode ser sobreescrito
synchronized: declara o mtodo como zona de exclusao
mtua no caso de programas concorrentes
a passagem de parametros em ]ava sempre por
valor.
Um mtodo identificado pelo seu nome e pelos
parametros (assinatura do mtodo)
todos da cIasse
33
Faculdade Pitagoras
de Uberlndia
niciaIizao de objetos
Construtor da Classe
tem o mesmo nome que a classe
chamado na criaao do objeto (new)
class Teste {
public Teste() { .... }
public Teste(int i) { ..... }
.....
}
40
Faculdade Pitagoras
de Uberlndia
ExempIo
class Cachorro {
// Atributos dos objetos da classe
private String nome;
private String cor;
private int peso;
private float energia;
// Construtores
Cachorro(String s) { nome = s; }
Cachorro() { nome = "Sem nome"; }
// Mtodos (comportamentos dos objetos da classe)
void setPeso(int v) { peso = v; }
int getPeso() { return peso; }
void corre() { ... }
void late() { ... }
}
Cachorro
!ome : String
Cor : String
Peso : integer
Energia : float
Cachorro s : String)
Cachorro )
getPeso ) : integer
setPeso v : integer)
corre )
late )
41
Faculdade Pitagoras
de Uberlndia
Exerccios
1. Construa as seguintes classes:
Uma Pessoa tem um nome String)
Uma Porta tem um estado aberto, que pode ser true ou
false, e pode ser aberta ou fechada
Uma Casa tem um proprietario Pessoa e um endereo
Um Ponto tem coordenadas x e y inteiras
Um Circulo tem um Ponto e um raio inteiro
Um Pixel um tipo de Ponto que possui uma cor
42
Faculdade Pitagoras
de Uberlndia
Exerccios
2. Escreva uma classe Ponto
contm x e y que podem ser definidos em construtor
mtodos getX) e getY) que retornam x e y
mtodos setXint) e setYint) que mudam x e y
3. Escreva uma classe Circulo, que contenha
raio inteiro e origem Ponto
construtor que define origem e raio
mtodo que retorna a area
mtodo que retorna a circunferncia
use java.lang.Nath.P! Nath.P!)
4. Crie um segundo construtor para Circulo que aceite
um raio do tipo int e coordenadas x e y
43

Você também pode gostar