Você está na página 1de 33

Introduo a Programao Orientada a Objetos

Programao em Java Prof. Maurcio Braga

Desenvolvimento de Software tradicional


Programas

Processos

dados

Enfoque a programas

Viso tradicional usa perspectiva de algoritmo


O principal bloco de construo o procedimento ou funo Conduz o foco de ateno para questes referentes ao controle e a decomposio de algoritmos maiores em outros menores

Modelagem de dados divide as informaes em tabelas, criando mecanismos para juno posterior
3

Desenvolvimento Orientado a Objetos


Visualiza e representa o mundo real como um conjunto de objetos que interagem entre si para que determinadas operaes sejam realizadas.
Motorista Carro
Parar

Desenvolvimento Orientado a Objetos

Viso contempornea adota perspectiva OO.


Forma de construir software que difere bastante dos enfoques tradicionais. Programao orientada a objetos freqentemente referenciada como um novo paradigma de programao.

Desenvolvimento Orientado a Objetos

Programao implementada pelo envio de mensagens. A soluo de um problema consiste em identificar os objetos, mensagens e seqncias de mensagens para efetuar a soluo.
Cada objeto do mundo real transforma-se em um objeto de software.

Viabiliza a montagem de sistemas a partir de componentes.

Exemplo

Voc resolve jantar numa pizzaria


Existem vrios objetos na pizzaria:

Pizza Mesa Garom, etc.... Mesa redonda ou quadrada Mesa desocupada ou no

Cada objeto tem caractersticas que o descrevem:


Exemplo Objetos
Conta corrente deposito()
saldo

Criao dos objetos

Desenvolver uma aplicao 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 necessrio abstrair as caractersticas relevantes de cada entidade para o sistema em desenvolvimento

O processo de abstrao fundamental para o desenvolvimento de softwares orientados a objetos.

Abstrao
Eliminao do irrelevante e amplificao do essencial

10

Abstrao

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 importncia do objeto, para que apenas as caractersticas apropriadas que o descrevem permaneam.

11

Exemplo abstrao

Registros de oficina

Registros em casa
Km/l, manuteno, etc
12

Registros Detran
Identificao, impostos, placa, etc..

placa, conserto, pagamento, etc..

Objetos

Um objeto qualquer coisa, real ou abstrata, sobre a qual armazenamos dados e operaes que manipulam tais dados
Unidade bsica de modularizao do sistema na abordagem OO

Um objeto um ente independente, composto por:

atributos, isto , caractersticas ou propriedades que definem o objeto comportamento, isto , um conjunto de aes pr-definidas (denominada mtodos), atravs das quais o objeto responder demanda de processamento por parte de outros objetos

13

Em resumo:

Em outras palavras, a expresso orientada a objetos significa que o aplicativo organizado como uma coleo 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 usurio.

14

Desenvolvimento tradicional x orientado a objetos


Programas Classes

processos

atributos

dados

operaes

15

Classes

Classes: fbricas de objetos.


Exemplificando, temos que Pessoa uma classe e Joo um objeto (instncia) da classe Pessoa. Um carro uma classe; meu carro um objeto.

Objetos similares so agrupados em classes

16

Classes Fbrica de objetos.

Definio da classe

17

Mensagens

A POO identifica uma abordagem em que o programador visualiza seu programa em execuo em termos de objetos que se comunicam atravs de trocas de mensagens
Mensagem - composta por um nome e por parmetros (opcional)

Cliente debite(50R$)

Conta debite

18

Mensagens

Objetos interagem enviando mensagens uns para os outros.


O objeto que receber a mensagem responder atravs da seleo e execuo de um mtodo que faz parte de seu comportamento

Aps a execuo, o controle volta para o objeto que enviou a mensagem


Uma mesma mensagem pode gerar aes diferentes (polimorfismo) Classes bem projetadas escondem seus dados do ambiente externo (encapsulamento)

19

Classes e objetos em Java


Estrutura de uma classe em Java

[acesso] class NomeDaClasse { Atributos Construtores Mtodos }

Definio da classe

O contedo da classe

20

Classes e objetos em Java


Mtodos e parmetros de uma classe em Java

Viabilizam a troca de mensagens entre os objetos. Definem as operaes que podem ser invocadas em um objeto.

Acelerar o carro; Freiar.

Mtodos podem ter parmetros para passar informaes adicionais necessrias para sua execuo.

Acelerar x km/h2

21

Classes e objetos em Java


Mtodos e parmetros de uma classe em Java

Mtodos tm uma estrutura que consiste em um cabealho e um corpo. O cabealho define a assinatura do mtodo. public String getNomeCurso() public void setNomeCurso(String nome)
O corpo engloba as instrues do mtodo.

22

Classes e objetos em Java


Atributos de uma classe em Java

Atributos armazenam valores para um objeto. Eles tambm so conhecidos como variveis de instncias. Atributos definem o estado de um objeto. Normalmente so definidos como privados e vm acompanhados de dois mtodos

public class LivroNotas { private String nomeCurso; Construtor e mtodos omitidos. }

Modificador de visibilidade

Tipo

Nome da varivel

set<nomeAtributo> get<nomeAtributo>

private String nomeCurso;

23

Exemplo
public class Produto { private int codigo; private String nome;

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

24

Classes e objetos em Java


Construo de objetos em Java

Realizada com a palavra reservada New. Processo conhecido como criao de uma instncia de uma classe. Tipo da varivel pode diferir do objeto realmente criado (desde que estejam relacionados por herana).

Declarao do tipo da varivel

Varivel

Objeto real criado

Produto p = new Produto();

25

Construtores

Construtores inicializam um objeto. Eles tm o mesmo nome das suas classes. Eles armazenam valores iniciais nos atributos do objeto. Eles freqentemente recebem valores de parmetros externos para definir os atributos.

EX:
public Produto(int cod, String nome_prod) { codigo = cod; nome = nome_prod; }

26

Classes e objetos em Java

Construtores
Pode

existir mais de um construtor em uma classe; Caso no seja definido nenhum construtor, o compilador cria o construtor padro, sem parmetros;

O construtor padro inicializa os atributos de classe para seus valores padres.

Caso

seja definido qualquer construtor, o construtor padro no ser adicionado pelo compilador;
Caso deseje-se que a classe ainda possua um construtor sem parmetros, necessrio declar-lo explicitamente.

27

Classes e objetos em Java

Declarao de pacotes

Permite a reutilizao de classes; Adio da declarao package ao arquivo:


Deve ser a primeira instruo do arquivo; Como comentrios no so instrues, apenas comentrios podem vir antes que a declarao package. public Toda e qualquer classe Java possui acesso; Apenas classes pblicas so reutilizveis, as classes no pblicas costumam ser usadas apenas para dar suporte s pblicas, e so declaradas em um mesmo arquivo que uma classe pblica (inner classes).

Definio de visibilidade da classe:


28

Classes e objetos em Java

Declarao de pacotes (cont.)

A Sun sugere a utilizao do nome do domnio na internet invertido.

Ex: Classes disponibilizadas pela Apache (http://apache.org) devem ter seus pacotes iniciados como org.apache

Para utilizar uma classe pblica que pertence a um pacote fora deste pacote, devemos importar esta classe.

Ex: se eu declarar uma classe chamada Time no pacote com.fbv, devo usar a seguinte instruo em uma classe que no pertena ao pacote com.fbv: Import com.fbv.Time;

29

Classes e objetos em Java

Modificadores de acesso

Public

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

Private

Pode ser utilizado para atributos e mtodos, permitindo que sejam utilizados apenas pela classe que os declara. Pode ser utilizado com classes internas tambm.
Caso nenhum modificador de acesso seja definido, o atributo ou mtodo ser considerado com acesso de pacote, sendo acessveis por qualquer classe que pertena ao mesmo pacote que os declara.

Default

30

A Referncia this

Mtodos de instncia recebem um argumento chamado this que uma referncia ao objeto corrente. O uso explcito do this necessrio quando:

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

o nome de um parmetro do mtodo for o mesmo de uma varivel de instncia; desejamos passar uma referncia do objeto corrente como parmetro para outro mtodo.

31

Pilares da programao OO

Encapsulamento
Herana Polimorfismo

32

Introduo a Programao Orientada a Objetos


Programao em Java Prof. Maurcio Braga