Introdução a POO Implementação Técnico em Informática, M.Sc.
Objetos 12/04/2012 20:17 Redes de Computadores 2
Domínio e Aplicação Domínio Composto pelas entidades, informações e processos relacionados a um determinado contexto. Aplicação Desenvolvido para automatizar as tarefas de um domínio 3
Exemplo -Domínio Bancário Entidades Clientes Funcionários Agências Contas Informações Processos 4
Objetos, Atributos e Métodos Objetos Entidades Uma aplicação orientada a objetos é composta por objetos. Em geral, um objeto representa uma entidade do domínio. 5
Objetos, Atributos e Métodos Atributos Um atributo é uma variável que pertence a um objeto. Os dados de um objeto são armazenados nos seus atributos. Exemplo: Objeto João (Atributo: Dados) Nome: Carlos DataNascimento: 23/06/1995 Sexo: Masculino 6
Objetos, Atributos e Métodos Métodos (1/2) Operações que permitem consultar ou alterar os valores dos atributos de um objeto. São também utilizados para possibilitar interações entre os objetos de uma aplicação. Exemplo: quando um clienterequisita um saqueatravés de um caixa eletrônico do banco, o objeto que representa o caixa eletrônico deve interagir com o objeto que representa a conta do cliente. 7
Objetos, Atributos e Métodos Métodos (2/2) As tarefas que um objeto pode realizar são definidas pelos seus métodos. Um objeto é composto por atributose métodos. 8
Representação: Domínio X Aplicação Representação: Domín nio X Aplicação 9
Classes 12/04/2012 20:17 Redes de Computadores 10
Classes Antes de criar um objeto é necessário definirquais serão seus atributose métodos. A definição é realizada através de uma classe. A partir de uma classe, é possível construir objetos na memória ( espaço onde vivem os objetos ). 11
Representação de classes Uma classe pode ser representada através de diagramas de UML. Composição da representação: Nomes Atributos Métodos 12
Anologia 13
Anologia Classe Objetos Diversas classe construídas a partir de uma mesma planta Classe -- Planta Objetos -- Casas 14
Anologia Classe Objetos Diversos bolos preparados a partir de uma mesma receita Classe -- Receita Objetos -- Bolos 15
Anologia Classe Objetos Diversos carros construídos a partir do mesmo projeto Classe -- Carro Objetos -- Carros 16
Anologia Classe Objetos As diferenças entre dois objetos de mesma classe estão nos valores de seus atributos. 17
Implementação em C# 12/04/2012 20:17 Redes de Computadores 18
Classe 19
Criando objetos Instanciação de Classe A palavra reservada new é usada para instanciar um Objeto de uma determinada classe. 20
Criando objetos Instanciação de Classe Instanciação (criação) de três objetos do tipo Conta. 21
Criando objetos -analogia 22
Objeto -Referência Todo objeto possui uma referência A referência de um objetoé a única maneira de acessar os seus atributose métodos. 23
Objeto -Referência 24
Criar uma Referência em C# Usa-se a instrução new Com a instrução newum objeto é alocado em algum lugar na memória. Para acessar o objeto, é necessário sua referência. A instrução newdevolve a referência do objeto que foi criado. A referência (endereço de memória) devolvida por new deve ser armazenada em uma variável. Esta variável não pode ser primitiva. Deve ser do tipo da classe, a qual foi utilizada para instanciar o objeto. 25
Criar uma Referência em C# A instrução newinstancia o objeto Conta e retorna uma referência (endereço de memória) que será atribuída a variável referencia do tipo Conta. A partir da variável referencia é possível acessar os atributos e invocar os métodos do objeto. 26
Manipulando Atributos Usando a variável de referência referencia 27
Atributos: Valores padrão Atributos de um objeto não precisam ser inicializados explicitamente. Os atributos são inicializados com valores padrão: Tipos numéricos: são inicializados com 0 (zero) Tipo boolean: são inicializados com false Demais atributos: são inicializados com null (referência vazia) 28
Atributos: Valores padrão Exemplos 29
Atributos: Valores padrão Exemplos definindo um valor padrão 30
Atributos: Valores padrão Exercícios: Implemente as seguintes classes Faça uma classe de testes (com o método Main) para instanciar objetos das classes acima. Mude o estado dos atributos dos objetos e apresente os valores no vídeo 31
RELACIONAMENTOS: ASSOCIAÇÃO, AGREGAÇÃO E COMPOSIÇÃO 12/04/2012 20:17 Redes de Computadores 32
Associação, Agregação e Composição Todo clientede banco pode adquirir um cartão de crédito. Se o cliente adquirir um cartão de crédito, dentro do sistema do banco, deve existir um objeto que represente o clientee outro que represente o cartão de crédito. Para expressar a relaçãoentre o clientee o cartão de crédito, algum vínculo entre esses dois objetos deve ser estabelecido. 33
Associação, Agregação e Composição Exemplo: cliente x cartões 34
Associação, Agregação e Composição Exemplo: cliente x cartões Duas classes devem ser criadas: uma para definir os atributos e métodos dos clientese outra para os atributos e métodos dos cartões de crédito. Para expressar o relacionamento entre cliente e cartão de crédito, podemos adicionar um atributo do tipo Clientena classe CartaoDeCredito. 35
Associação, Agregação e Composição Exemplo: cliente x cartões Implementação: 36
Associação, Agregação e Composição Exemplo: cliente x cartões Tipo de relacionamento: agregação Notação gráfica na linguagem UML No relacionamento entre cartão de crédito e cliente, um cartão de crédito só pode se relacionar com um único cliente. Por isso, no diagrama acima, o número 1é colocado ao lado da classe Cliente. Por outro lado, um cliente pode se relacionar com muitos cartões de crédito. Por isso, no diagrama acima, o caractere * é colocado ao lado da classe CartaoDeCredito. 37
Associação, Agregação e Composição Exemplo: cliente x cartões O relacionamento entre um objetoda classe Cliente e um objeto da classe CartaoDeCredito só é concretizado quando a referência do objetoda classe Clienteé armazenada no atributo clientedo objetoda classe CartaoDeCredito. Depois de relacionados, podemos acessar, indiretamente, os atributos do cliente através da referência do objetoda classe CartaoDeCredito. 38
Associação, Agregação e Composição Exemplo: cliente x cartões 39
Associação, Agregação e Composição Exemplo: Conectando um clientea um cartão: 40
Associação, Agregação e Composição Exercício: relação Conta x Agencia Implemente as classes e a relação existente entre elas de acordo com o diagrama abaixo Implemente uma classe de teste, crie objetos Conta e Agencia. Associe um objeto a outro e atribua valores aos atributos de cada objeto. Mostre os valores no vídeo. 41
MÉTODOS 12/04/2012 20:17 Redes de Computadores 42
Métodos São operações que podem modificar ou apenas acessar os valores dos atributos dos objetos. Exemplo: Classe Conta de um Banco No banco, é possível realizar diversas operações em uma conta: Depósito, Saque, Transferência, Consultas, Etc. 43
Métodos 44
Métodos As operações são realizadas em métodos definidos na própria classe. No caso das operações citadas no slide anterior, estas são implementadas na classe Conta. Exemplo da operação depositar: 45
Métodos Um método pode ser dividido em quatro partes: Nome: É utilizado para chamar o método. Na linguagem C#, é uma boa prática definir os nomes dos métodos utilizando a convenção CamelCase com a primeira letra maiúscula. Lista de Parâmetros: Define os valores que o método deve receber. Métodos que não devem receber nenhum valor possuem a lista de parâmetros vazia. Corpo Define o que acontecerá quando o método for chamado (invocado). Retorno resposta que será devolvida ao final do processamento do método. Quando um método não devolve nenhuma resposta, ele deve ser marcado com a palavra reservada void. 46
Métodos Método Depositar 47
Métodos Método público: 48
Métodos Executando a operação Depositara partir de um objeto do tipo Conta. 49
Métodos O que acontece com o valor do atributo na memória? Memória c numero = 0 saldo = 0 limite = 0 50
Métodos O que acontece com o valor do atributo na memória? Memória c numero = 0 saldo = 500.0 limite = 0 51
Métodos O que acontece com o valor do atributo na memória? Memória c numero = 0 saldo = 800.0 limite = 0 Para realizar um depósito, devemos chamar o método Depositar(x) através da referência do objeto que representa a conta que terá o dinheiro creditado. 52
Métodos O método Depositar() não possui nenhum retorno lógico. Por isso, foi marcado com void. Mas, para outros métodos, pode ser necessário definir um tipo de retorno específico. Exemplo: 53
Métodos Exemplo da classe Conta 54
Métodos Chamando um método que Memória retorna valor a partir de um objeto: numero = 0 saldo = 800.0 limite = 1000.0 c 55
Métodos Atividade Na classe Conta, implemente os métodos: Sacar: este método tem como parâmetro de entrada um valor double. Este valor será descontado do atributo saldo da classe conta. O método não irá retornar valor algum. ConsultarSaldo: Este método não tem parâmetro de entrada e irá retornar um valor double, correspondente ao atributo saldo. 56
Métodos Sobrecarga -Overloading Overloading Sobrecarga de método Quando dois ou mais métodos são definidos na mesma classe com o mesmo nome sobrecarga de método. Uma sobrecarga de método só é válida se as listas de parâmetros dos métodos são diferentes entre si. Exemplo: Na classe Conta do sistema bancário poderíamos ter um métodopara gerar um extrato padrão dos últimos 30 dias e outro para gerar um extrato referente a quantidade de dias desejada pelo cliente. 57
Métodos Overloading Exemplo Sobrecarga -Overloading 58
Métodos Overloading Exemplo Sobrecarga -Overloading 59
MÉTODOS CONSTRUTORES 12/04/2012 20:17 Redes de Computadores 60
Métodos Construtores É um método que é executado toda vez que um objeto é criado instanciado. Assim, toda vez que o comando newé chamado, devemos informar um método construtor. Exemplo: 61
Métodos Construtores Característica de métodos construtores Tem o mesmo nome da classe Podem ser livres de parâmetros construtor padrão (default). Podem ter parâmetros Podem ser sobrecarregados Não podem retornar valores 62
Métodos Construtores Construtores podem ser utilizados de modo a garantir o estado inicial de um objeto. Por exemplo: Digamos todo o cartão de crédito deva possuir um número. O valor poderia ser atribuído logo depois da instanciação do objeto. Qual é a garantia que este cartão vai ter seu número? 63
Métodos Construtores Para resolver esse risco, podemos utilizar construtores. Um construtor permite que um determinado trecho de código seja executado toda vez que um objeto é criado, ou seja, toda vez que o operador newé chamado. 64
Métodos Construtores Implementação Instanciação 65
Métodos Construtores Construtor padrão Toda vez que um objeto é criado, um construtor da classe correspondente deve ser chamado. Mesmo quando nenhum construtor for definido explicitamente, há um construtor padrão que será inserido pelo próprio compilador. O construtor padrão não recebe parâmetros e será inserido sempre que o desenvolvedor não definir pelo menos um construtor explicitamente. 66
Métodos Construtores Construtor padrão Exemplo Instanciação de Objeto a partir do construtor padrão: 67
Métodos Construtores Sobrecarga de construtores 68
Métodos Construtores Construtor chamando construtor 69
Métodos Construtores Variável de referência como parâmetro de um construtor: Da mesma forma que podemos passar valores primitivos como parâmetro para um método ou construtor, também podemos passar valores não primitivos (referências). 70
Métodos Construtores Variável de referência como parâmetro de um construtor Instanciação 71
Métodos Construtores Variável de referência como parâmetro de um método: Chamando o método Transferir 72
Referências Bibliográficas www.k19.com.br(o conteúdo deste material é baseado na apostila C# e Orientação a Objetos, de propriedade da K19 Treinamentos) 73