Você está na página 1de 31

Orientao a Objetos

A orientao a objetos representa melhor o mundo real,


uma vez que a percepo e o raciocnio esto relacionados
diretamente com objetos.

Objetivo principal da utilizao do paradigma da


Orientao a Objetos, na construo de software:

Rpido

No perder tempo no desenvolvimento

Barato

Reutilizao de cdigo

Flexvel

Fcil modificar ou estender
Orientao a Objetos

Com a orientao a objetos procura-se eliminar as


diferenas entre as etapas de anlise, projeto e
implementao, reabilitando a difamada tarefa de
implementao

O segredo fazer com que os conceitos de


programao, e as notaes para programao, sejam
suficientemente de alto nvel para que possam servir
apropriadamente como ferramentas de modelagem.
Estruturada x OO
Sistema de informao de
bibliotecas

A/P orientados a objetos A/P estruturados


Decompor por objetos Decompor por
ou conceitos. funes ou processo.

Sistema

Registrar
Catlogo Bibliotecrio emprstimos
Relatar
multas
Livro Biblioteca
Adicionar
recursos
Anlise Estruturada
DFD Nvel 0 Solicitao de Pedido

Professor Jos Azanha Neto


Elementos de Modelagem OO
Classes e Objetos Persistentes
Associaes e Ligaes

Multiplicidade e Cardinalidade

Herana

Generalizao e Especializao
Agregao

Entidades Associativas

Atributos de Ligao

Polimorfismo

Abstraes
Conceitos sobre OO

Objeto: Representa algo do mundo real que possui


caractersticas (valores) e comportamentos (aes ou
eventos).

A orientao a objetos um paradigma de anlise, projeto


e programao de sistemas de software baseado na
composio e interao entre diversas unidades de
software chamadas de objetos.
Exemplos: Carro, Pessoa, Mesa, Cadeira, etc.

Professor Jos Azanha Neto


Conceitos sobre OO

Classe: Representa um conjunto de objetos com


caractersticas afins. Uma classe define o comportamento
dos objetos atravs de seus mtodos, e quais estados ele
capaz de manter atravs de seus atributos.

Exemplo: Classe Pessoa; Classe Veculo

Professor Jos Azanha Neto


Conceitos sobre OO

Nome da Classe: Determina o nome do objeto na classe.

Atributos da Classe: Determinam as caractersticas de


um objeto na classe.

Operaes (mtodos) da Classe: Determinam o


comportamento e/ou aes que um objeto pode sofrer.

Professor Jos Azanha Neto


Conceitos sobre OO
Objeto e
Classe

Professor Jos Azanha Neto


Diagrama de Classe

Uma Classe define a


quantidade de
instncias ou
ocorrncias de um
determinado objeto.
Define tambm as
caractersticas e
comportamentos de um
determinado objeto.

Professor Jos Azanha Neto


Conceitos sobre OO
As instncias
representam o
nmero de
ocorrncias de
um objeto
especfico. Veja
o exemplo do
objeto Cliente.

Professor Jos Azanha Neto


Conceitos sobre OO

Herana: Representa que um determinado objeto-filho


herda (recebe) todas as caracteristicas e comportamentos
do objeto-pai.
Exemplos:
Astra Astra Sport Pessoa PF
Mdico Ortopedista Computador Notebook

Professor Jos Azanha Neto


Conceitos sobre OO

Generalizao: Representa
o nome dado para as
Super-Classes, ou seja,
objetos cuja finalidade
genrica.

Especializao: Representa
o nome dado para as
Sub-Classes, ou seja,
objetos cuja finalidade
especfica.

Professor Jos Azanha Neto


A UML

A Unified Modeling Language (Linguagem de Modelagem


Unificada) uma tcnica de anlise baseada em objetos e
com grande aplicabilidade em projetos de software por
todo o mundo.

Empresas (especialistas em TI ou no) de pequeno,


mdio e grande porte
utilizam esta tcnica em seus
processos de Engenharia de
Software.

Professor Jos Azanha Neto


Diagrama de Use Case Viso Geral de UCs
Sistema de validao
de carto de crdito

Realizar
Transao de
Carto

Cliente Instituio
Processar
vendedora
Fatura

Verificar
Transaes

Cliente Cliente Gerenciar


individual corporativo Conta Financeira

Professor Jos Azanha Neto


Caso de Uso com Esteretipos e Relacionamento entre UCs
Autenticar
Usurio
<< include >>

Fazer << include >> Detectar


Pedido Fraude Carto
<< include >>
Validar
Funcionrio Transao
<< include >>

Relatrio << extend >> Relatrio


Clientes Cliente PF

Professor Jos Azanha Neto


class Pessoa { Classe Genrica em Java
String nome;
int peso;
char sexo;

static public void main (String args[]) {


String nome;
int peso;
char sexo;

Pessoa w = new Pessoa();


w.nome = "Joo";
nome = w.nome;
w.peso = 70;
peso = w.peso;
w.sexo = 'M';
sexo = w.sexo;
System.out.println ("O valor do nome : " + nome);
System.out.println ("O valor do peso : " + peso);
System.out.println ("O valor do sexo : " + sexo);
}
} Professor Jos Azanha Neto
Classe Genrica em Java

class Funcionario {
int numero;
String nome;

void iniciar (int numero, String nome)


{
this.numero = numero;
this.nome = nome;
}

void imprimirFuncionario() {
System.out.println ("Nmero do funcionrio: " + numero);
System.out.println ("Nome do funcionrio: " + nome);
}
}
Professor Jos Azanha Neto
Classe Especialista em Java
Herana

class Motorista extends Funcionario {


int habilitacao;

void imprimirHabilitacao() {
System.out.println ("Nmero da habilitao: " + habilitacao);
}

static public void main (String args[]) {


Motorista motorista1 = new Motorista();
motorista1.iniciar(100, "Jos");
motorista1.habilitacao = 12345;

motorista1.imprimirFuncionario();
motorista1.imprimirHabilitacao();
}
}
Professor Jos Azanha Neto
class Motorista extends Funcionario
{
int habilitacao; Classe Especialista em Java
Herana
void imprimirHabilitacao()
{
System.out.println ("Nmero da habilitao: " + habilitacao);
}
}

class Exemplo1
{
static public void main (String args[])
{
Motorista motorista1 = new Motorista();
motorista1.iniciar(100, "Jos");
motorista1.habilitacao = 12345;

motorista1.imprimirFuncionario();
motorista1.imprimirHabilitacao();
}
} Professor Jos Azanha Neto
Polimorfismo

Em OOP, polimorfismo uma facilidade que permite que


dois ou mais objetos diferentes respondam a mesma
mensagem.
O objeto emissor no precisa saber como o objeto
receptor implementa a mensagem. Apenas os objetos
receptores devem se preocupar com isso.

Uma analogia ao polimorfismo o sinal dos colgios.


Muito embora seja um nico sinal, ele significa coisas
distintas para cada aluno: uns vo para casa, outros para
biblioteca e terceiros voltam para sala de aula. Logo,
todos respondem ao sinal, mas cada um do seu jeito.
Professor Jos Azanha Neto
public class Cliente {

int nu_matricula;
String nm_cliente;

void imprimirCliente(){ Polimorfismo


System.out.println("Incio dos Atributos da Classe Cliente...");
System.out.println("Nome Cliente: " + nm_cliente);
System.out.println("Matrcula Cliente: " + nu_matricula);
System.out.println("Fim dos Atributos da Classe Cliente!!!\n");
}
}

class ClientePF extends Cliente {

String nu_cpf;

void imprimirCliente(){
System.out.println("Incio dos Atributos da Classe Cliente PF...");
System.out.println("CPF Cliente: " + nu_cpf);
System.out.println("Fim dos Atributos da Classe Cliente PF !!!\n");
}
} Professor Jos Azanha Neto
Polimorfismo
class ExPolimorfismo{

static public void main(String args[]){


Cliente cliente = new Cliente();
ClientePF cliente_pf = new ClientePF();

cliente.nu_matricula = 1010;
cliente.nm_cliente = "Manuel da Silva";
cliente_pf.nu_cpf = "123.456.789-00";

cliente.imprimirCliente();
cliente_pf.imprimirCliente();

cliente = cliente_pf;
cliente.imprimirCliente();
}
}
Professor Jos Azanha Neto
Java Remote Method Invocation (RMI)
Possibilita a criao de aplicaes Java para ambientes distribudos;
Com a obteno da referncia de um objeto remoto, sua utilizao igual a de
um objeto local;
O RMI encapsula a interface com o protocolo de rede (socket);
Complexidade de programao e ambiente:
muito simples construir aplicaes RMI, comparando-se com aplicaes que
utilizam tecnologia RPC e CORBA;
Ambiente:
Exige somente suporte TCP/IP e um servio de nomes de objetos (SDK.
(rmiregistry), disponibilizado gratuitamente com o JDK/SDK.

Professor Jos Azanha Neto


Java Remote Method Invocation (RMI)
O Java RMI uma interface que possibilita a intercomunicao entre objetos Java
localizados em diferentes hosts;
Cada objeto remoto implementa uma interface remota que especifica
quais de seus mtodos podem ser invocados remotamente pelos clientes;
Os clientes invocam tais mtodos exatamente como invocam mtodos
locais.

Professor Jos Azanha Neto


Java Remote Method Invocation (RMI)
Uma aplicao distribuda com RMI tem acesso transparente ao objeto remoto
por meio de sua Interface remota:
A "Interface remota" uma interface que estende os mtodos e
propriedades da API java.rmi.Remote;
A partir da Interface remota e implementao do objeto remoto o sistema
gera objetos (proxies) que realizam todas as tarefas necessrias
redenecessrias para viabilizar a comunicao em rede

Professor Jos Azanha Neto


Programao com sockets em Java
Sistemas modernos:
Comunicam-se entre mquinas e algumas vezes entre processos na
mesma mquina, por meio do uso de sockets.
O que socket?
um canal de comunicao utilizados por aplicaes. referenciado por
um nmero de porta, de maneira que a camada TCP possa identificar a
aplicao de destino.
Comunicao mais simples entre aplicativos localizados em mquinas
diferentes, porm pela simplicidade no bem aplicado na manipulao
de tipos de dados ou de aplicaes muito complexas.

Professor Jos Azanha Neto


Programao com sockets em Java
Existem trs tipos de sockets:
Datagram sockets: Envia o pacote sem a confirmao de que o servidor recebeu;
utiliza User Datagram Protocol (UDP).
Stream sockets: Envia o pacote com o cuidado de que o servidor receba e que a
conexo deva estar ativa no momento da comunicao; utiliza Transfer Control
Protocol (TCP).
Raw sockets: Envia o pacote sem utilizar as camadas de transporte, sendo
utilizada a camada de rede Internet Protocol (IP) e no Internet Control Message
Protocol (ICMP).

Professor Jos Azanha Neto


Programao com sockets em Java

Professor Jos Azanha Neto


Programao com sockets em Java

Professor Jos Azanha Neto


Programao com sockets em Java
A biblioteca para sockets:
ServerSocket: esta classe possibilita criar um servidor de sockets, sendo
deste a obrigao de atender a uma demanda de conexo via a rede.
Socket: esta classe possibilita criar um cliente socket que um ponto final
para a comunicao entre dois ns da rede (computadores).

Professor Jos Azanha Neto

Você também pode gostar