Orientação a objetos. Objetos ou Instâncias I

Documentos relacionados
Introdução ao Java. Prof. Herbert Rausch Fernandes

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Conceitos de Programação Orientada a Objetos

Modelagem Orientada a Objeto

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Conceitos de Programação Orientada a Objetos

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Programação Orientada a Objetos

Fundamentos de Orientação à objetos

Programação Orientada a Objetos JAVA - NETBEANS

O PARADIGMA ORIENTADO POR OBJETOS

Conceitos de Orientação a Objetos. Objeto Atributo Classe Método

Capítulo 2. Orientação a Objetos

PROGRAMAÇÃO ORIENTADA A

Conceitos de Orientação a Objetos

Daniel Wildt

Aula 4 Encapsulamento e Relacionamento Cleverton Hentz

Programação Orientada a Objetos

Classe Abstrata e Interface

Programação Orientada a Objetos

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

Desenvolvimento Web TCC Turma A-1

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II)

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

Linguagem de Programação I Apresentação da Disciplina

Orientação a Objetos Classes Abstratas

Modificadores de Acesso JAVA

Java para Desktop. Programação Orientada à Objetos 2 JSE

Linguagem de Programação III

C com introdução a OO

E N C A P S U L A M E N T O P R O F. M E. H É L I O E S P E R I D I Ã O

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS

Requisitos de sistemas

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

Programação Orientada a Objetos JAVA - NETBEANS

Definição. Em POO, a abstração é o processo de esconder os detalhes de implementação de uma aplicação.

Programação Orientada a Objetos

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

Classes e Objetos. Sintaxe de classe em Java

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Linguagem de Modelagem Unificada UML

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

Laboratório de programação II

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Diagrama de Classes. Classes. Relacionamentos. Atributos Métodos. Associação. Generalização Dependência Realização. Agregação Composição

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência

Herança e Polimorfismo

1 Introdução e Conceitos básicos

Introdução à Orientação a Objetos

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

Desenvolvimento de Aplicações Desktop

Interfaces e Classes Abstratas

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Linguagens de Programação Aula 12

Análise e Projeto de Sistemas

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Análise de Sistemas 3º Bimestre (material 2)

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Linguagem de Programação. Diagrama de classes

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Programação Orientada a Objetos

Diagrama de Casos de Uso

PCS3413 Engenharia de Software e Banco de Dados

Laboratório de programação II

LINGUAGEM DE PROGRAMAÇÃO

Programação Java (nível intermediário) 4. Polimorfismo

Orientação a Objetos (OO)

Programação Orientada a Objeto (POO)

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Unidade IV MODELAGEM DE. Prof. Daniel Arthur Gennari Junior

Transcrição:

Orientação a objetos Objetos ou Instâncias Métodos ou Mensagens Encapsulamento Classes Variáveis da Classe X Variáveis da Instância Métodos da Classe X Métodos da Instância Relacionamentos Identificando Objetos Classes Abstratas Polimorfismo Objetos ou Instâncias I Objetos do mundo real: os objetos possuem estados e possuem comportamento Objeto de software: mantém seus estados em variáveis e implementam seus comportamentos com métodos Tudo que um objeto de software sabe (estado) e pode fazer (comportamento) é expresso por variáveis e métodos do objeto 1

Objetos ou Instâncias II Exemplo: bicicleta O objeto tem total controle sobre o acesso a seus métodos e suas variáveis O objeto pode disponibilizar algumas variáveis e métodos e esconder outras variáveis e métodos Métodos ou Mensagens I Função(retorna um valor) ou procedimento(não retorna) para alterar ou verificar o estado (atributos) de um objeto Execução de um método é a reação à recepção de uma mensagem Deve operar somente com os atributos do próprio objeto e atributos recebidos como parâmetro 2

Métodos ou Mensagens II Objetos de software interagem e se comunicam uns com os outros através do envio de mensagem Quando um objeto A quer que o objeto B faça uma ação, o objeto A envia uma mensagem ao objeto B A pede para B fazer Ação = A pede para B executar Método X Mensagem Objeto B Objeto A Métodos ou Mensagens III Três componentes compreendem uma mensagem: o objeto para o qual a mensagem é enviada o nome do método a ser executado parâmetros necessários para execução do método A pede para B fazer Ação = Você pede para a Bicicleta Passar_Marcha(marchaAnterior) Passar_marcha (marchaanterior) Bicicleta Você 3

Encapsulamento Usado para esconder detalhes de implementação Não é necessário saber como a classe está implementada para chamar o método necessário. Basta saber a interface do método Os atributos de um objeto só devem ser manipulados pelos métodos do próprio objeto (orientação a objeto pura). Restrição de acesso (métodos e atributos) Public: sem restrição. Qualquer objeto pode acessar tal método/atributo Private: apenas o objeto que possui o método/atributo pode acessa-lo Protect: apenas os objetos das classes do mesmo pacote podem acessar o método/atributo Default: atributo -> C++: private / JAVA: private método -> C++: private / JAVA: public 4

Classe No mundo real sua bicicleta é apenas uma das existentes no mundo As bicicletas possuem estado e comportamento em comum Molde para construção da bicicleta: classe Terminologia OO: sua bicicleta é uma instância da classe Bicicleta. molde: Bicileta Bicicleta A Bicicleta B Bicicleta C Classe X Instância I Para criar o objeto bicicleta no mundo OO é necessário: criar uma classe de bicicletas (molde) instanciar a classe gerando então o objeto bicicleta (instância) Com um molde você gera vários objetos parecidos. Todos os objetos possuem os mesmos atributos e os mesmos métodos (implementação dos métodos é a mesma para todos os objetos) Os valores dos atributos podem ser modificados por cada objeto Quando uma instância da classe é gerada, um objeto é criado e o sistema aloca memória para suas variáveis 5

Exemplo Molde: Classe Empregado atributos: nome endereço salário = R$ 300,00 métodos: atualizarsalário(salárionovo) fornecerinformações() Objeto Empregado A atributos: nome = João endereço = R. Maria 12 salário= R$ 300,00 métodos: atualizarsalário(salárionovo) fornecerinformações() Objeto Empregado B atributos: nome = Ana endereço = R. D. José 30 salário= R$ 300,00 métodos: atualizarsalário(salárionovo) fornecerinformações() Variáveis da Instância X da Classe Variáveis da classe Só existe uma cópia de cada variável Todos as instâncias acessam a mesma cópia das variáveis São criadas apenas uma vez assim que o sistema reconhece a classe Variáveis da Instância Existe uma cópia para cada instância criada Cada instância acessa a sua cópia São criadas sempre quando uma nova instância é gerada 6

Métodos de Instância X de Classe Métodos de Classe Podem acessar apenas variáveis da classe Podem ser acessados pela classe ou pela instância Métodos de Instância Podem acessar variáveis da classe e da instância Só podem ser acessados por instâncias Relacionamentos entre Classes Para que objetos se comuniquem eles precisam se relacionar Tipos de Relacionamentos: Associação Agregação Composição Dependência Generalização / Herança 7

Relacionamentos (continuação) Associação: descreve uma relação entre duas classes Usuário possui bicicleta Agregação: descreve o relacionamento entre um todo e sua parte são indicadas por frases do tipo tem um, é parte de Uma teclado é parte de um notebook Relacionamentos (continuação) Generalização / Herança descreve o relacionamento entre classes definidas a partir de outras classes. toda a subclasse herda os estados e os comportamentos definidos na superclasse as subclasses não estão limitadas a estes estados e comportamentos. Uma mountain bike é uma bicicleta subclasse superclasse 8

Identificando Objetos Em uma sala existe um conjunto de objetos físicos que podem ser facilmente identificados, modelados e classificados como objetos OO. Mas em um problema onde o espaço é uma aplicação de software, os objetos podem não ser facilmente encontrados. Os objetos podem ser identificados analisando-se o problema ou fazendo um parser gramatical do texto contendo a descrição do problema Objetos são determinados sublinhando-se cada substantivo ou oração (parte de uma frase) Identificando Objetos (continuação) Candidatos a objeto: Entidade externa que produz ou consome informação para ser usada por um sistema computacional (ex.: outros sistemas, devices, pessoas) Coisas que são parte do domínio da informação do problema (ex.: um sinal, uma carta, um display) Ocorrências ou eventos que acontecem no contexto da operação do sistema (ex.: a propriedade de uma transferência, a finalização de uma série de movimentos de um robô) Papeis(roles) desempenhados por pessoas que interagem com o sistema (ex.: gerente, engenheiro, vendedor) Unidades de organização que são relevantes a uma aplicação (ex.: divisões, grupo, time) Lugares que estabelecem o contexto do problema (ex.: galpão, estaleiro) Estruturas que definem a classe de um objeto (ex.: sensor, computador, veículo 4-rodas) 9

Identificando Objetos (continuação) Entidades externas Coisas Lugar Papéis Eventos Estrutura Unidades organizacionais Nome do objeto Atributos Operações Classe abstrata Pelo menos um de seus métodos está declarado mas não têm implementação associada. Método abstrato: método sem implementação Não gera instância Só pode ser usada como base para outras classes herança Cada subclasse deverá implementar o método abstrato da superclasse (classe abstrata) 10

Exemplo Pessoa telefone abstratos alterartelefone(tel.) Professor telefone Aluno telefone alterartelefone(tel.) alterartelefone(tel.) Polimorfismo Polimorfismo é a habilidade de diferentes instâncias, de classes diferentes, responderem a mesma mensagem de diferentes maneiras. executar métodos com a mesma assinatura mas implementados de maneira diferente Classe polimórfica: quando instâncias suas ou instâncias de classes derivadas suas possuem mensagens que nem sempre são respondidas da mesma maneira - a resposta irá depender do contexto da execução. 11

Exemplo Veículo marcha passarmarcha(prox.) classe polimórfica Moto marcha passarmarcha(prox.) Carro marcha passarmarcha(prox.) movimentarbanco() 12