Introdução aos conceitos de OO

Propaganda
INTRODUÇÃO A PROGRAMAÇÃO
ORIENTADA A OBJETOS
COM LINGUAGEM JAVA
DESENVOLVIMENTO DE SOFTWARE TRADICIONAL
Programas
Processos
dados
ENFOQUE A PROGRAMAS

Visão tradicional usa perspectiva de algoritmo

O principal bloco de construção é o procedimento
ou função


Conduz o foco de atenção para questões
referentes ao controle e a decomposição de
algoritmos maiores em outros menores
Modelagem de dados divide as informações em
tabelas, criando mecanismos para junção
posterior
DESENVOLVIMENTO ORIENTADO A
OBJETOS
Visualiza e representa o mundo real como um
conjunto de objetos que interagem entre si para
que determinadas operações sejam realizadas.
Motorista
Carro
Parar
DESENVOLVIMENTO ORIENTADO A
OBJETOS



Objetos do mundo real
transformam-se em objetos no
software.
Programação orientada a objetos é
freqüentemente referenciada como
um “novo” paradigma de
programação.
Viabiliza a montagem de sistemas
a partir de componentes.
Conta corrente
deposito()
saldo
EXEMPLO

Você resolve jantar numa pizzaria.

Existem vários objetos na pizzaria:




Pizza
Mesa
Garçom, etc....
Cada objeto tem características que o
descrevem:


Mesa redonda ou retangular
Mesa desocupada ou não
CRIAÇÃO DOS OBJETOS



Desenvolver uma aplicação no paradigma OO
implica em modelar os objetos existentes no
mundo real no sistema em desenvolvimento.
Objetos existentes no mundo real podem ser
complexos, tornando necessário abstrair as
características relevantes de cada entidade para
o sistema em desenvolvimento
O processo de abstração é fundamental para o
desenvolvimento de softwares orientados a
objetos.
ABSTRAÇÃO
Eliminação
do
irrelevante e
amplificação do
essencial
ABSTRAÇÃO


É o mecanismo que nos permite representar uma
realidade complexa em termos de um modelo
simplificado, de modo que detalhes irrelevantes
possam ser suprimidos.
Processo de filtragem de detalhes sem
importância do objeto, para que apenas as
características apropriadas que o descrevem
permaneçam.
EXEMPLO – ABSTRAÇÃO
Registros
de oficina
placa, conserto,
pagamento, etc..
Registros
em casa
Km/l,
manutenção, etc
Registros
Detran
Identificação,
impostos, placa,
etc..
OBJETOS



Um objeto é qualquer coisa, real ou abstrata, sobre a qual
armazenamos dados e operações que manipulam tais dados
Unidade básica de modularização do sistema na abordagem
OO
Um objeto é um ente independente, composto por:
atributos, isto é, características ou propriedades que definem o
objeto
 comportamento, isto é, um conjunto de ações pré-definidas
(denominada métodos), através das quais o objeto responderá
à demanda de processamento por parte de outros objetos

DESENVOLVIMENTO TRADICIONAL X
ORIENTADO A OBJETOS
Programa
Programa
Processos
Classes
Atributos
Dados
Operações
CLASSES


Classes: “fábricas” de objetos.
Exemplificando, temos que Pessoa é uma classe e
João é um objeto (instância) da classe Pessoa.

Um carro é uma classe; “meu carro” é um objeto.

Objetos similares são agrupados em classes
CLASSES – FÁBRICA DE OBJETOS.
Definição da classe
CLASSES E OBJETOS EM JAVA
Estrutura de uma classe em Java
[acesso] class NomeDaClasse
{
Atributos
Construtores
Métodos
}
Definição da
classe
O conteúdo da
classe
CLASSES E OBJETOS EM JAVA
Métodos de uma classe em Java


Definem as operações que podem ser invocadas em
um objeto.
Podem receber parâmetros ou não.
public String getNomeCurso()
public void setNomeCurso(String nome)

O cabeçalho define a assinatura do método.
CLASSES E OBJETOS EM JAVA
Atributos de uma classe em Java



Atributos armazenam
valores para um objeto.
Eles também são conhecidos
como variáveis de instâncias.
Atributos definem o estado
de um objeto.
public class CursoGraduacao {
private String nomeCurso;
private int qtd_periodos;
Construtor e métodos omitidos.
}
Modificador de
visibilidade
Tipo
Nome da
variável
private String nomeCurso;
EXEMPLO
public class Produto
{
private int codigo;
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome_produto) {
nome = nome_produto;
}
}
CLASSES E OBJETOS EM JAVA
Construção de objetos em Java



Realizada com a palavra
reservada New.
Processo conhecido como
criação de uma instância
de uma classe.
Tipo da variável pode
diferir do objeto realmente
criado (desde que estejam
relacionados por herança).
Declaração do
tipo da variável
Variável
Objeto real
criado
Produto p = new Produto();
CONSTRUTORES

Da mesma forma que com
variáveis comuns, é
possível inicializar um
objeto logo ao construí-lo;

Construtores inicializam
um objeto.

Eles têm o mesmo nome
das suas classes.

Eles freqüentemente
recebem valores de
parâmetros externos para
definir os atributos.
EX:
public Produto(int cod, String nome_prod)
{
codigo = cod;
nome = nome_prod;
}
int cod = 341278;
String prod = “Computador MSX Expert”;
Produto p = new Produto(cod, prod);
CLASSES E OBJETOS EM JAVA

Construtores:


Pode existir mais de um construtor em uma classe;
Caso não seja definido nenhum construtor, o compilador
cria o construtor padrão, sem parâmetros;


O construtor padrão inicializa os atributos de classe para
seus valores padrões.
Caso seja definido qualquer construtor, o construtor
padrão não será adicionado pelo compilador;

Caso se tenha interesse que a classe ainda possua um
construtor sem parâmetros, é necessário declará-lo
explicitamente.
A REFERÊNCIA THIS


Métodos de instância
recebem um argumento
chamado this que é uma
referência ao objeto
corrente.
O uso explícito do this é
necessário quando:
o nome de um parâmetro
do método for o mesmo
de uma variável de
instância;
 desejamos passar uma
referência do objeto
corrente como parâmetro
para outro método.

EX:
Class Produto
{
private int codigo;
private String nome;
public Produto(int codigo, String nome)
{
this.codigo = codigo;
this.nome = nome;
}
MENSAGENS


A POO identifica uma abordagem em que o programador
visualiza seu programa em execução em termos de objetos
que se comunicam através de trocas de mensagens
Mensagem - composta por um nome e por parâmetros
(opcional)
Cliente
Conta
debite(50R$)
debite
MENSAGENS



Objetos interagem enviando mensagens uns para
os outros;
O objeto que receber a mensagem responderá
através da seleção e execução de um método que
faz parte de seu comportamento;
Após a execução, o controle volta para o objeto
que enviou a mensagem.
Download