introdução a programação orientada a objetos programação em java prof. maurício braga

31
Introdução a Introdução a Programação Programação Orientada a Objetos Orientada a Objetos Programação em Java Prof. Maurício Braga

Upload: internet

Post on 16-Apr-2015

117 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

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

ObjetosObjetos

Programação em Java

Prof. Maurício Braga

Page 2: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

2/32

Desenvolvimento de Software tradicional

Programas

Processos

dados

Page 3: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

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

Page 4: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

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

Page 5: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

5/32

Desenvolvimento Orientado a Objetos

Visão contemporânea adota perspectiva OO.

Forma de construir software que difere bastante dos enfoques tradicionais.

Programação orientada a objetos é freqüentemente referenciada como um “novo” paradigma de programação.

Page 6: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

6/32

Desenvolvimento Orientado a Objetos

Programação implementada pelo envio de mensagens. A solução de um problema consiste em identificar os objetos, mensagens e seqüências de mensagens para efetuar a solução.

Cada objeto do mundo real transforma-se em um “objeto” de software.

Viabiliza a montagem de sistemas a partir de componentes.

Page 7: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

7/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 quadrada Mesa desocupada ou não

Page 8: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

8/32

Exemplo – Objetos

saldo

deposito()

Conta corrente

Page 9: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

9/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.

Page 10: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

10/32

Abstração

Eliminação

do

irrelevante e amplificação do essencial

Page 11: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

11/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.

Page 12: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

12/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..

Page 13: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

13/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

Page 14: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

14/32

Em resumo:

Em outras palavras, a expressão orientada a objetos significa que o aplicativo é organizado como uma coleção de objetos que incorporam tanto a estrutura como o comportamento dos dados

Criar um programa requer modelar o mesmo como um conjunto de objetos que interagem para realizar uma ou mais tarefas de interesse do usuário.

Page 15: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

15/32

Desenvolvimento tradicional x orientado a objetos

Programas Classes

processos atributos

dados operações

Page 16: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

16/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

Page 17: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

17/32

Classes – Fábrica de objetos.

Definição da classe

Page 18: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

18/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

Page 19: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

19/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

Uma mesma mensagem pode gerar ações diferentes (polimorfismo)

Classes bem projetadas escondem seus dados do ambiente externo (encapsulamento)

Page 20: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

20/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

Page 21: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

21/32

Classes e objetos em Java

Viabilizam a troca de mensagens entre os objetos. Definem as operações que podem ser invocadas em

um objeto. Acelerar o carro; Freiar.

Métodos podem ter parâmetros para passar informações adicionais necessárias para sua execução. Acelerar ‘x’ km/h2

Métodos e parâmetros de uma classe em Java

Page 22: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

22/32

Classes e objetos em Java

Métodos têm uma estrutura que consiste em um cabeçalho e um corpo.

O cabeçalho define a assinatura do método.

public String getNomeCurso()

public void setNomeCurso(String nome)

O corpo engloba as instruções do método.

Métodos e parâmetros de uma classe em Java

Page 23: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

23/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.

Normalmente são definidos como privados e vêm acompanhados de dois métodos set<nomeAtributo> get<nomeAtributo>

public class CursoGraduacao { private String nomeCurso;  Construtor e métodos omitidos.}

private String nomeCurso;

Modificador devisibilidade Tipo

Nome da variável

Atributos de uma classe em Java

Page 24: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

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

Page 25: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

25/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

Page 26: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

26/32

Construtores

Construtores inicializam um objeto.

Eles têm o mesmo nome das suas classes.

Eles armazenam valores iniciais nos atributos do objeto.

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

Page 27: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

27/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 deseje-se que a classe ainda possua um construtor

sem parâmetros, é necessário declará-lo explicitamente.

Page 28: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

28/32

Classes e objetos em Java

Declaração de pacotes Permite a reutilização de classes; Adição da declaração package ao arquivo:

Deve ser a primeira instrução do arquivo; Como comentários não são instruções, apenas comentários podem

vir antes que a declaração package. Definição de visibilidade da classe:

public – Toda e qualquer classe Java possui acesso; Apenas classes públicas são reutilizáveis, as classes não públicas

costumam ser usadas apenas para dar suporte às públicas, e são declaradas em um mesmo arquivo que uma classe pública (inner classes).

Page 29: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

29/32

Classes e objetos em Java

Declaração de pacotes (cont.) A Sun sugere a utilização do nome do domínio na internet

invertido. Ex: Classes disponibilizadas pela Apache (http://apache.org) devem

ter seus pacotes iniciados como org.apache Para utilizar uma classe pública que pertence a um pacote fora

deste pacote, devemos importar esta classe. Ex: se eu declarar uma classe chamada Time no pacote com.msx,

devo usar a seguinte instrução em uma classe que não pertença ao pacote com.msx:

Import com.msx.Time;

Page 30: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

30/32

Classes e objetos em Java

Modificadores de acesso Public

Pode ser utilizado para classes, atributos e métodos, permitindo que sejam utilizados por qualquer outra classe Java;

Private Pode ser utilizado para atributos e métodos, permitindo que sejam

utilizados apenas pela classe que os declara. Pode ser utilizado com classes internas também.

Default Caso nenhum modificador de acesso seja definido, o atributo ou

método será considerado com acesso de pacote, sendo acessíveis por qualquer classe que pertença ao mesmo pacote que os declara.

Page 31: Introdução a Programação Orientada a Objetos Programação em Java Prof. Maurício Braga

31/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:

public Produto(int codigo, String nome) { this.codigo = codigo; this.nome = nome;}