ANALISE DE PROGRAMAÇÃO

Click here to load reader

  • date post

    12-Jul-2015
  • Category

    Documents

  • view

    362
  • download

    0

Embed Size (px)

Transcript of ANALISE DE PROGRAMAÇÃO

Java Standard Edition

Programao Orientada a ObjetosDefinio Conceitos e Terminologias1

Motivao Conforme visto, Java uma linguagem OO Para desenvolver aplicaes de qualidade em Java preciso aprender a aplicar princpios de OO ao programar (quase) possvel escrever programas em Java sem saber OO, mas Dificilmente voc ser capaz de ir alm de programinhas simples com mais de uma classe Ser muito difcil entender outros cdigos Seu cdigo ser difcil de entender, manter e reutilizar Voc estar perdendo ao utilizar uma linguagem como Java (poder usar outra mais simples para 2

Definio de POO Segundo Robert Sebesta: A essncia da programao orientada a objetos resolver problemas identificando os objetos do mundo real do problema e o seu processamento necessrio, criando, ento, simulao dos mesmos, seus processos e as comunicaes necessrias entre eles...

Segundo Grady Booch: Programao orientada a objetos um mtodo de implementao no qual programas so organizados como colees cooperativas de objetos, cada um representando uma instncia de

3

Aspectos importantes da POO Usa objetos, e no procedimentos como bloco lgico fundamental para a construo de programas Cada objeto uma instncia de uma classe Objetos comunicam-se atravs de mensagens Classes so relacionadas com as outras via mecanismos de herana, formando uma hierarquia de classes Exemplos de linguagens OO:

4

Conceitos e terminologia Abstrao Objetos Encapsulamento/Ocultao de informao Estado e comportamento Classes Herana Polimorfismo

5

Abstrao

6

Abstrao Conceito de abstrao: Processo mental que consiste em escolher ou isolar um aspecto determinado de um estado de coisas relativamente complexo, a fim de simplificar a sua avaliao, classificao ou para permitir a comunicao do mesmo [Dicionrio Houassis] Uma abstrao denota as caractersticas essenciais de um objeto que o distinguem de outros tipos de objetos e assim prov uma fronteira conceitual firmemente 7 definida, de acordo com a perspectiva do

Objetos No mundo real.... Para um ser humano, um objeto ... Algo tangvel e/ou visvel Algo que possa ser compreendido intelectualmente Algo para o qual um pensamento ou ao possa ser direcionado

Um objeto modela alguma parte da realidade e algo que existe no tempo e no espao8

Objetos Para um programador... Um objeto representa uma entidade, unidade ou item identificvel, individual, real ou abstrato, com um papel bem definido no domnio do problema no qual se quer resolver/solucionar [Booch]

Os objetos podem ser fsicos... Bicicleta, mquina de escrever, pessoa, sensor, ...

Ou no... Reao qumica, nmero complexo, venda...9

Objetos Nem tudo um objeto Tempo, mtricas, sensaes e sentimentos humanos no so, em geral, modelados como objetos Estes, normalmente, so tratados como propriedades dos objetos

Descobrir quais entidades fazem parte do domnio do problema e identificar suas propriedades e comportamentos tarefa do programador e, sobretudo, de vocs! (analistas de sistemas) 10 Isso vem com a experincia...

Exemplos de objetos - propriedades Objeto: nibus Propriedades Valores Velocidade: 112 Km/h Lugares....: 44 Marca......: MERCEDES Km..........: 80.732 Km Eixos.......: 2

Objeto: poltrona Propriedades Valores

11

Exemplos de objetos - propriedadesVelocidade: 112 Lugares....: 44 Marca......: MERCEDES Km..........: 80.732 Km Eixos.......: 2

Cor......: azul lugares: 1 Marca.: Artefacto

12

Exemplos de objetos Exemplo de um objeto em Java:class Onibus { float velocidade; int lugares; String marca; int quilometragem; int eixos; } // fim da classe ... Onibus carro43, setusao, frescao;13

Objetos Definio formal: Um objeto tem um estado, comportamento e uma identidade; a estrutura e o comportamento de objetos similares so definidos nas suas classes [Booch]

14

Caractersticas de um objeto Estado: Propriedades (geralmente estticas) Caracterstica inerente ou distintiva que contribui para a unicidade de um objeto

Valores (geralmente dinmicos) Todas as propriedades possuem valores que podem variar ao longo do tempo

O estado de um objeto consiste de todas as propriedades do objeto mais os valores atuais destas propriedades [Booch]15

Caractersticas de um objeto Comportamento: O comportamento de um objeto caracterizado pelo conjunto de operaes que o objeto capaz de executar (ou sua interface) Podemos imaginar os objetos como prestadores de servios Sempre que o objeto solicitar um servio de outro objeto, deve enviar-lhe uma mensagem Se o objeto receptor for capaz de prestar este servio, ele ento ser executado

16

Exemplos de objetos Exemplo: Suponha uma abstrao para uma lmpada que deva exibir o seguinte comportamento: Informar se est acesa; Acender-se e Apagar-se.

Vamos construir isso em Java.

17

Exemplos de objetos Exemplo de um objeto em Java:class Lampada extends Object { boolean estaAcesa = false; boolean getAcesa(){ ... } void acende(){ ... } void apaga(){ ... } } Estado Comportame nto

Mtodo

18

Exemplos de objetos Exemplo de um objeto em Java:Lampada l1, l2; l1 l2 l1 = l2 = new Lampada(); new Lampada(); l1 l2

l1.acende(); l2.apaga(); l1 = l2; if ( l1.getAcesa() ) {19

l1 l2

Identidade de um Objeto Identidade Cada objeto nico e distinguvel dos demais independentemente dos valores dos seus atributos Para manipular os objetos, nos utilizamos de referncias para os mesmos Uma referncia nada mais do que uma varivel que aponta para um objeto do tipo para o qual foi declarada ou para objetos do subtipo deste tipo20

Identidade de um Objeto Identidade Objetos so criados atravs de um processo chamado de instanciao, que, por sua vez, devolve um ponteiro para o objeto criado. Erros comuns: Confundir referncia com identidade, varivel com objeto Confundir valores de atributos com identidade21

Ciclo de vida de um Objeto A linha da vida de um objeto:1) Instanciao: o objeto criado e passa a ser referenciado por um nome (sua referncia); 2) Uso: o objeto recebe mensagens de outros objetos e, com isso, executa parte da funcionalidade do sistema; 3) Destruio: a rea de memria ocupada pelo objeto reclamada...todas as referncias para o objetos ficam nulas. A destruio de um objeto realizada22

Exemplo Ciclo de vida de um Objeto Exemplo de cdigo Java:Quadrado q;

q = new Quadrado();

q.moverDireita(20); q.mudarTamanho(5); q.ficarVisivel(false); q.mudarCor(red);

q = null;

23

Exemplo Ciclo de vida de um Objeto Esquematicamente:q new

tamanho: 28 cor: white visivel: true

24

Instanciao de Objetos Definio Operao atravs da qual um objeto criado e passa a existir na memria do computador. A classe o modelo ou a frma utilizada para criar o objeto.

Objeto versus referncias Os objetos so manipulados atravs de referncias ou ponteiros que indicam onde o objeto est localizado na memria do computador No h outra forma de chegar ao objeto sem que seja via uma referncia. Lembre de Bruce Eckel e sua analogia do 25

Referncias para objetos A maioria dos objetos em um programa Java so acessados por variveis chamadas de referncias Como Java uma linguagem fortemente tipada, estas variveis devem ser declaradas e tipificadas em tempo de compilao String s;// Exemplos: s do tipo StringQuadrado q1; Cliente c; // q1 do tipo Quadrado // c um cliente26

Referncias para objetos Referncias so ponteiros para o objetoQuadrado q; q = new Quadrado(); q.mudeTamanho(50); q = null; // declarao // instanciao // uso

// desprezo

q

27

Referncias para objetos Referncias so ponteiros para o objetoQuadrado q; q = new Quadrado(); q.mudeTamanho(50); q = null; // declarao // instanciao // uso

// desprezo

qtamanho: 30

28

Referncias para objetos Referncias so ponteiros para o objetoQuadrado q; q = new Quadrado(); q.mudeTamanho(50); q = null; // declarao // instanciao // uso

// desprezo

qtamanho: 50

29

Referncias para objetos Referncias so ponteiros para o objetoQuadrado q; q = new Quadrado(); q.mudeTamanho(50); q = null; // declarao // instanciao // uso

// desprezo Objeto sem referncia!tamanho: 50

q

30

O que uma Classe?

31

Classes Definio: Local onde encontram-se definidas as propriedades (variveis) e o comportamento (mtodos) que uma categoria de objetos deve possuir

Estrutura fundamental de programao em Java! Todo e qualquer programa Java deve definir pelo menos uma classe No h como escrever cdigo Java sem que haja a definio de classes32

Classes Toda classe define um novo tipo de dados Valores de um tipo definido por uma classe recebem o nome de objetos

33

Exemplo de uma classe Java Exemplo:Nome da classe

class Cliente extends Object { private String nome; private String endereco; private char sexo; } Propriedades dos objetos da classe Cliente

34

Exemplo de uma classe Java Instanciao da classe cliente:Cliente c1 = new Cliente(); Cliente c2 = new Cliente(); c1nome: end.: sexo:

c2nome: end.: sexo:

35

Importante! A classe Cliente, como est, apenas define a estrutura dos objetos; isto , as propriedades que os objetos do tipo Cliente tero Esta classe uma abstrao de um cliente para um sistema computacional O domnio do problema a ser resolvido que determina quais sero estas propriedades

Assim, uma forma de definir abstraes em Java criar uma classe!

36

Exemplo de uma classe Java Ampliando a classe Cliente (inserindo mtodos):class Cliente extends Object { private String nome; private String endereco; private char sexo; Mtod o public void setNome( St