A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Orientação a Objetos: Encapsulamento e Classificação Alcides Calsavara Edson Scalabrin.

Apresentações semelhantes


Apresentação em tema: "1 Orientação a Objetos: Encapsulamento e Classificação Alcides Calsavara Edson Scalabrin."— Transcrição da apresentação:

1 1 Orientação a Objetos: Encapsulamento e Classificação Alcides Calsavara Edson Scalabrin

2 2 Sistema Orientado a Objetos u Um sistema orientado a objetos é uma coleção de objetos que interagem entre si. u Um objeto interage com outro através de uma mensagem que causa um estímulo.

3 3 Interação entre Objetos

4 4 Objeto u Um objeto possui um comportamento e um estado : –o comportamento é a forma como reage a estímulos –o estado modifica-se de acordo com o comportamento

5 5 Comportamento e Estado

6 6 Encapsulamento u Separação dos aspectos externos de um objeto dos seus detalhes internos de implementação u O estado de um objeto somente é acessível a partir da implementação de seu comportamento

7 7 Guarantia de Encapsulamento

8 8 Comportamento u O comportamento de um objeto é definido por um conjunto de métodos u Um estímulo causa a execução de um método u Um estímulo pode ser uma invocação explícita de um método ou um evento relevante para o objeto

9 9 Execução de Métodos invocaçãoevento m ( ) e

10 10 Estado u O estado de um objeto é composto por um conjunto de valores de atributos

11 11 Classe u Uma classe descreve um conjunto de objetos: as instâncias da classe u Uma classe descreve o comportamento e a composição do estado de todos os seus objetos u Cada classe deve ter um nome distinto

12 12 Classes e Objetos

13 13 Tipos u Um tipo pode ser primitivo ou uma classe u Uma classe é um tipo abstrato de dados (ADT)

14 14 Tipos Primitivos em Java u Os tipos primitivos incluem: –números inteiros: byte, short, int, long –números reais: float, double –valores lógicos: boolean –caracteres: char

15 15 Classes de Bibliotecas u Exemplos: –String –Applet –Button –System

16 16 Método u Cada método possui uma assinatura, um tipo de retorno (primitivo ou classe) e uma implementação u A assinatura de um método é composta por um nome e uma lista de parâmetros u Cada parâmetro tem um nome e um tipo (primitivo ou classe)

17 17 Atributo u Cada atributo tem um nome e um tipo (primitivo ou classe) u Um objeto que possui um atributo cujo tipo é uma classe é um objeto composto, pois contém outro objeto

18 18 Atributos em Classes e Objetos b=true k=7 boolean b int k int x String s x =10 v=Paris s= char[] v A B String

19 19 Visibilidade e Encapsulamento u Um atributo deve preferencialmente ser qualificado como privado (private) u Um método pode ser tanto qualificado como privado como público (public) u O conjunto de métodos públicos de uma classe define a sua inteface

20 20 Estrutura de uma Classe u Uma classe contém um conjunto de atributos e um conjunto de métodos –os atributos devem ter nomes distintos –os métodos devem ter assinaturas distintas u Cada objeto possui um conjunto próprio de valores dos atributos e o conjunto de métodos da classe

21 21 Classe e Encapsulamento u Os valores dos atributos de um objeto somente são acessíveis a partir dos seus métodos

22 22 Exemplo: veículo, relógio, hodômetro, cronômetro u Um veículo possui um código, um hodômetro, um cronômetro e um relógio. u O hodômetro registra a kilometragem do veículo, e pode ser zerado a qualquer momento. u O hodômetro exibe a kilometragem atual e a média de kilômetros por segundo, desde o último instante em que foi zerado u A kilometragem registrada pelo hodômetro avança a medida que o veículo avança.

23 23 Exemplo: veículo, relógio, hodômetro, cronômetro u O cronômetro já fica ativo no momento da sua criação. u O cronômetro pode ser parado e reativado a qualquer instante. u O cronômetro exibe o número de milisegundos decorridos desde o instante da sua última ativação. u O relógio exibe a hora atual, com precisão de minutos.

24 24 :Veículo codigo = 13 hodometro cronometro relogio avance(distancia : int) exiba() comeceCronometro() pareCronometro() zereCronometro() zereHodometro() Veiculo(c : int) :Instante T diferenca(i : Instante) : int digaHoras() : int digaMinutos() : int :Date :Instante T diferenca(i : Instante) : int digaHoras() : int digaMinutos() : int :Date :Instante T diferenca(i : Instante) : int digaHoras() : int digaMinutos() : int :Date :Hodometro kilometragem = 283 momentoZeragem relogio zere() kilometragemMedia() : double avance(distancia : int) exiba() Hodometro(r : Relogio) :Cronometro ativo = true momentoInicio momentoParada relogio comece() pare() exiba() Cronometro(r : Relogio) :Relogio exiba() digaInstante() : Instante Representação de Objetos (usando UML) main

25 25 :Veículo - codigo : int + avance(distancia : int) + exiba() + comeceCronometro() + pareCronometro() + zereCronometro() + zereHodometro() + Veiculo(c : int) :Instante + diferenca(i : Instante) : int + digaHoras() : int + digaMinutos() : int :Hodometro - kilometragem : int + zere() - kilometragemMedia() : double + avance(distancia : int) + exiba() + Hodometro(r : Relogio) :Cronometro - ativo : boolean + comece() + pare() + exiba() + Cronometro(r : Relogio) :Relogio + exiba() + digaInstante() : Instante Diagrama de Classes (usando UML) momentoZeragem :Date momentoIniciomomentoParada 0..1


Carregar ppt "1 Orientação a Objetos: Encapsulamento e Classificação Alcides Calsavara Edson Scalabrin."

Apresentações semelhantes


Anúncios Google