Este documento introduz a programação orientada a objetos e sua implementação em Java. Ele explica como a abordagem OO modela o mundo real em termos de objetos e classes, definindo atributos e métodos para representar características e comportamentos. Também descreve como classes criam objetos em Java e como esses objetos se comunicam através de mensagens.
3. 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
3/32
4. 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
4/32
5. Desenvolvimento Orientado a Objetos
Conta corrente
Objetos do mundo real
transformam-se em objetos no deposito()
software.
saldo
Programação orientada a objetos é
freqüentemente referenciada como
um “novo” paradigma de
programação.
Viabiliza a montagem de sistemas
a partir de componentes.
5/32
6. 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
6/32
7. 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.
7/32
8. Abstração
Eliminação
do
irrelevante e
amplificação
do essencial
8/32
9. 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.
9/32
10. Exemplo – abstração
Registros Registros Registros
de oficina em casa Detran
placa, conserto, Km/l, Identificação,
pagamento, etc.. manutenção, etc impostos, placa,
etc..
10/32
11. 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
11/32
13. 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
13/32
15. 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
15/32
16. 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.
16/32
17. Classes e objetos em Java
Estrutura de uma classe em Java
Definição da
[acesso] class NomeDaClasse classe
{
Atributos
Construtores O conteúdo da
Métodos classe
}
17/32
18. 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.
18/32
19. Classes e objetos em Java
Atributos de uma classe em Java
Atributos armazenam valores public class CursoGraduacao {
para um objeto.
private String nomeCurso;
private int qtd_periodos;
Eles também são conhecidos
como variáveis de instâncias. Construtor e métodos omitidos.
}
Atributos definem o estado
de um objeto.
Modificador de Nome da
visibilidade Tipo variável
private String nomeCurso;
19/32
20. Exemplo
public class Produto {
private int codigo;
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome_produto) {
nome = nome_produto;
}
}
20/32
21. Classes e objetos em Java
Construção de objetos em Java
Realizada com a palavra Declaração do Objeto real
reservada New. tipo da variável Variável criado
Processo conhecido como
criação de uma instância Produto p = new Produto();
de uma classe.
Tipo da variável pode diferir
do objeto realmente criado
(desde que estejam
relacionados por herança).
21/32
22. Construtores
Da mesma forma que com EX:
variáveis comuns, é
possível inicializar um public Produto(int cod, String nome_prod)
objeto logo ao construí-lo; {
codigo = cod;
Construtores inicializam nome = nome_prod;
um objeto. }
Eles têm o mesmo nome
das suas classes. int cod = 341278;
String prod = “Computador MSX Expert”;
Eles freqüentemente
recebem valores de Produto p = new Produto(cod, prod);
parâmetros externos para
definir os atributos.
22/32
23. 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.
23/32
24. A Referência this
Métodos de instância EX:
recebem um argumento
chamado this que é uma Class Produto {
referência ao objeto
corrente. private int codigo;
O uso explícito do this é private String nome;
necessário quando:
o nome de um parâmetro public Produto(int codigo, String nome)
do método for o mesmo {
de uma variável de this.codigo = codigo;
instância; this.nome = nome;
desejamos passar uma }
referência do objeto
corrente como parâmetro
para outro método.
24/32