Introdução a programação Orientada a Objeto

25
Introdução a Introdução a Programação Orientada a Programação Orientada a Objetos Objetos Programação em Java

description

Slide aula de introdução a orientação a objetos.

Transcript of Introdução a programação Orientada a Objeto

Introdução a Introdução a Programação Orientada a Programação Orientada a

ObjetosObjetos

Programação em Java

2/32

Desenvolvimento de Software tradicional

Programas

Processos

dados

3/32

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

4/32

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.

Parar

Motorista Carro

5/32

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.

saldo

deposito()

Conta corrente

6/32

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

7/32

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.

8/32

Abstração

Eliminação

do

irrelevante e amplificação do essencial

9/32

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.

10/32

Exemplo – abstração

Registros de oficina

Registros em casa

Registros Detran

placa, conserto, pagamento, etc..

Km/l, manutenção, etc

Identificação,impostos, placa,etc..

11/32

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

12/32

Desenvolvimento tradicional x orientado a objetos

Programa

Classes

Atributos

Operações

Programa

Processos

Dados

13/32

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

14/32

Classes – Fábrica de objetos.

Definição da classe

15/32

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

16/32

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.

17/32

Classes e objetos em Java

[acesso] class NomeDaClasse{

Atributos Construtores Métodos}

Definição da classe

O conteúdo daclasse

Estrutura de uma classe em Java

18/32

Classes e objetos 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.

Métodos de uma classe em Java

19/32

Classes e objetos 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.}

private String nomeCurso;

Modificador devisibilidade Tipo

Nome da variável

Atributos de uma classe em Java

20/32

Exemplo

public class Produto {

private int codigo; private String nome;

public String getNome() { return nome; }

public void setNome(String nome_produto) { nome = nome_produto; }}

21/32

Classes e 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).

Produto p = new Produto();

Declaração do tipo da variável Variável

Objeto real criado

Construção de objetos em Java

22/32

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);

23/32

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.

24/32

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;}

Introdução a Introdução a Programação Orientada a Programação Orientada a

ObjetosObjetos

Programação em Java

Prof. Maurício Braga