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

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

Cap2. Conceitos de orientação a objetos

Apresentações semelhantes


Apresentação em tema: "Cap2. Conceitos de orientação a objetos"— Transcrição da apresentação:

1 Cap2. Conceitos de orientação a objetos

2 1. Introdução á Programação Orientada a Objeto
Em programação orientada a objetos, um objeto passa a existir a partir de um "modelo“ (classe); a classe define o comportamento do objeto, usando atributos (propriedades) e métodos (ações).

3 2.Objeto / instância É uma referência a um local da memória que possui um valor. Um objeto é uma instância de uma classe.

4 3.Atributo  São características (propriedades) de um objeto

5 Exercícios de Fixação

6 Escreva um modelo para representar uma lâmpada que está à venda em um supermercado. Que dados devem ser representados por este modelo?

7 Crie um modelo Livro que represente os dados básicos de um livro, sem se preocupar com a sua finalidade.

8 3.Operações e Métodos São as ações que a Classe poderá realizar. Quando um objeto desta classe receber uma mensagem de algum outro objeto contendo o nome de um método, a ação correspondente a este método será executada.

9 public class Conta { private Double saldo; public void setSaldo(Double saldo) { this.saldo = saldo; } public Double getSaldo() { return saldo; public void depositar(Double valor){ saldo += valor; public void verificaSaldo(){ System.out.println("Valor do Saldo: "+getSaldo()); }

10 <? class conta { var $saldo; function conta () { $this.saldo = 0; } function saldo() { return $this->saldo; function credito($valor) { $this->saldo += $valor; } ?>

11 public class Pessoa { int _id; string _nome; DateTime _dataNascimento; public int CalcularIdade() int idade = DateTime.Now.Year - this._dataNascimento.Year; return (idade); } public int CalcularIdade(DateTime dataReferencia) int idade = dataReferencia.Year - this._dataNascimento.Year;

12 class ValoresInt { public int calculadora() { int a = 10; int b = 20; int c = a + b; return c; } public class Metodo_Com_Retorno_Inteiro { public static void main(String[] args) { ValoresInt valores = new ValoresInt(); System.out.print( valores.calculadora() );

13 // Declaração do método
int soma(int x, int y) { return x + y; } // e para chamar o método int a = 2; int b = 3; int resultado = soma(a, b);

14 Exercícios de Fixação

15 Escreva uma classe para conter três membros do tipo inteiro chamados hora, minutos e segundos e chame-a de tempo. Crie um método para solicitar a hora, os minutos e os segundos para o usuário. Crie um método para imprimir a hora no formato hh:mm:ss.

16 4.Mensagem    É uma chamada a um objeto para invocar um de seus métodos, ativando um comportamento descrito por sua classe.

17 public static void main(String[] args) { nconta = new Conta();
//INSTANCIA A CLASSE CONTA nconta = new Conta(); //DEFINE UM VALOR DE SALDO nconta.setSaldo(633.00); //DEFINE VALOR PARA DEPOSITAR nconta.depositar(555.0); //RESGATA VALOR nconta.verificaSaldo(); }

18 5.Classe Representa um conjunto de objetos com características comuns.

19 Classe em Java class TV { int tamanho; int canal; boolean ligada; }

20 Classe em VB.net Class ClasseSimples2 Private MemberVal1 As Long Protected MemberVal2 As Long Public MemberVal3 As Long End Class

21 Classe em C# public class Pessoa { int _id; string _nome; DateTime _dataNascimento; }

22 Classe em PHP class conexao{ var $ip = "localhost"; var $user = "root"; var $pass = ""; var $database = "projeto"; }

23 Exercícios de Fixação

24 Em uma determinada Imobiliária precisamos tratar os seguintes dados:
Em uma determinada Imobiliária precisamos tratar os seguintes dados: Os Imóveis á serem alugados Os Proprietários Os locatários Os aluguéis a serem pagos Crie uma modelo de dados básico para cada uma das classes.

25 2. Desenvolver um sistema de cadastro de Pessoas, Alunos e Professores.
Sendo que as Alunos terão como que cadastrar as notas equivalentes ao semestre

26 6.Instanciação É a criação de um objeto a partir de uma classe.
Linha de criação de uma instância Nome da instancia: novo Nome da Classe ao qual pertence Ex: apto1: novo Apartamento() apto1.Editar_Apto() fez a chamada do método Editar_apto() na instância apto1

27 private void button1_Click(object sender, EventArgs e) { //Instanciando um objeto Socio soc = new Socio(); //Inserindo atributos soc.Nome = "Thiago Montebugnoli"; soc.Rg = " "; soc.Cpf = " "; soc.Nascimento = DateTime.Parse("15/11/1984"); soc.Telefone = "(14) "; soc.Endereco = "Rua Fulano de Tal, 999"; //Invocando métodos soc.Cadastrar(); if (soc.ConfirmarCadastro(1)) MessageBox.Show("Cadastro Confirmado!"); if (soc.ValidarSocio(1)) MessageBox.Show("Sócio Validado!"); soc.Alterar(); }

28 4.Herança (ou generalização)
Mecanismo pelo qual uma classe pode estender outra classe aproveitando seus métodos e atributos.  class Pessoa class Fisica : Pessoa class Juridica : Pessoa Public Class PessoaFisica Inherits Pessoa class Carro extends Veiculo

29 Classe Base (Super Classe) (Classe Pai)
A classe que concede as características a uma outra classe.

30 <? class conta { var $saldo; function saldo() { return $this->saldo; } function credito($valor) { $this->saldo += $valor; $minhaconta = new conta; $minhaconta->saldo(); // a variavel interna não foi inicializada, e não contém valor algum $minhaconta->credito(50); $minhaconta->saldo(); // retorna 50 ?>

31 Classe Derivada (Sub Classe) (Classe Filho)
A classe que herda as características da classe base.

32 Herança Simples Determina que uma classe herdará características de apenas uma classe base.

33 <?php class ChequeEspecial extends ChequeComum { public function calculaJuros() return $this->valor * 1.10; // soma 10% em cima do valor } ?>

34 Herança Múltipla Determina que uma classe herdará características de duas ou mais classes base.

35 Class A   'classe Pai ou classe base.
         Public Sub A()             System.Console.Write("A")         End Sub     End Class  Class B           ' primeira classe filha ou subclasse da classe Pai        Inherits A     ' esta linha indica que esta classe herda da classe A        Public Sub B()            System.Console.Write("B")        End Sub    End Class Class C 'segunda classe filha Inherits B ' esta linha indica que esta classe herda da classe B Public Sub C() System.Console.Write("C") End Sub End Class

36 //Pessoa namespace Heranca { public class Pessoa public string Nome { get; set; } public void escreverNome() Console.Write(this.Nome ); //Pessoa Física public class Fisica : Pessoa public string Cpf { public Boolean validarCpf() { return this.Cpf.Length == 11; //Pessoa Jurídica public class Juridica : Pessoa{ public string Cnpj { get; set; public Boolean validarCnpj() return this.Cnpj.Length == 14;

37 Exercícios de Fixação

38 Crie a seguinte hierarquia de Classes:

39 Crie a seguinte hierarquia de Classes:

40 5.Classes Abstratas   Uma classe abstrata é desenvolvida para representar entidades e conceitos abstratos. A classe abstrata é sempre uma superclasse que não possui instâncias. Ela define um modelo (template) para uma funcionalidade 

41 CARACTERISTICAS DA CLASSE ABSTRATA
- Uma classe abstrata é uma classe que não pode ser instanciada. Você não pode criar um objeto a partir de uma classe abstrata. - Uma classe abstrata pode ser herdada e geralmente serve como classe base para outras classes. - Uma classe abstrata pode conter métodos abstratos e métodos comuns. Uma classe abstrata também podem possuir construtores, propriedades, indexadores e eventos.

42 CARACTERISTICAS DOS MÉTODOS ABSTRATOS:
- Um método abstrato é um método que não possui implementação na classe abstrata. Um método abstrato possui somente a definição de sua assinatura. A sua implementação deve ser feita na classe derivada.

43 Muitas formas geométricas possuem área, perímetro e cor, porém cada forma geométrica tem sua fórmula particular para calcular a área e o perímetro

44 public double Perimetro { get{ return _perimetro; } set{
public abstract class Forma { private double _area; private string _cor; private double _perimetro; public string Cor get return _cor; } set _cor = value; public double Area { get{ return _area; } set { _area = value; public double Perimetro { get{ return _perimetro; } set{ _perimetro = value;

45 Vamos definir a classe Quadrado que vai herdar da classe Forma
public class Quadrado : Forma { private double lado; public double Lado get {return lado;} set {lado = value;} } public override void CalcularArea() { this.Area = lado * lado; } public override void CalcularPerimetro() { this.Perimetro = 4 * lado; }

46 6.Persistência / Serialização.
É a capacidade de um objeto de salvar seus dados para uso em outro momento. Este termo é muito utilizado quando falamos de banco de dados, onde um objeto salva os dados em uma tabela. Imaginamos que no objeto pessoa temos as propriedades, Nome, Telefone e CPF e precisamos salvar estes dados para que quando o aplicativo for fechado possamos recuperar o mesmo ao abrir o aplicativo novamente.

47

48 //popular o objeto pessoa
Pessoa pessoa = new Pessoa(); pessoa.Nome = "Marcelo"; pessoa.CPF = " "; pessoa.Telefone = "(00) "; //criar o objeto que irá serializar a pessoa em XML System.Xml.Serialization.XmlSerializer x =new System.Xml.Serialization.XmlSerializer (pessoa.GetType()); //salvar no arquivo XML pessoa.xml System.Xml.XmlTextWriter xmlWriter =new System.Xml.XmlTextWriter("pessoa.xml", Encoding.UTF8); //serializar para pessoa.xml x.Serialize(xmlWriter, pessoa); //liberamos o arquivo xml xmlWriter.Flush(); xmlWriter.Close(); //Neste momento se você abrir o arquivo pessoa.xml //em algum editor //verá os dados do objeto pessoa System.Xml.XmlTextReader xmlReader = new System.Xml.XmlTextReader("pessoa.xml"); //recuperar os dados e popular o objeto pessoa. pessoa = (Pessoa)x.Deserialize(xmlReader); //como teste, iremos passar o nome para uma variável string string nomePessoa = pessoa.Nome;

49 7.Abstração Foca nos aspectos essenciais dos objetos, representando apenas características relevantes ao sistema Abstrair significa separar mentalmente, considerar isoladamente, simplificar. Assim nossosistema deve ser separado de forma lógica com o objetivo de simplificar. Sendo assim existem classes que chamamos de classes estruturais. Elas são responsáveis por manter uma estrutura padrão para seus filhos, indepentende do seu número. Ou seja, essas classes nunca serão instanciadas, pois somente seus filhos serão usados

50 8.Associações É a relação mais comum entre dois objetos.
Quando acontece? Quando uma classe “usa” outra classe. Exemplo: Um motorista utiliza (depende do carro, mas este não faz parte do motorista) o carro para trabalhar. 

51 Composição Neste caso, o objeto-pai é responsável pela criação e destruição de suas partes. O objeto-pai realmente “possui” as instâncias de suas partes. Resumidamente, um só existe caso o outro também exista.

52 Neste exemplo, a classe cliente será responsável por instanciar contato.

53 Agregação Na agregação o objeto agrega outro objeto, ou seja, torna um objeto externo parte de si.. Assim o objeto pai poderá utilizar funcionalidades do objeto agregado, mas ele não depende dele (agregado) para existir.

54 Exemplo: O produto esta no carrinho de compras mas nem um dos dois precisa do outro para existir.

55 9.Encapsulamento Encapsulamento vem de encapsular, que em programação orientada a objetos significa separar o programa em partes, o mais isolado possível. A ideia é tornar o software mais flexível, fácil de modificar e de criar novas implementações. O Encapsulamento serve para controlar o acesso aos atributos e métodos de uma classe

56 public class Pessoa{ private String nome; private String sobrenome; private String dataNasc; private String rg; private String[] telefones; }

57 10.Polimorfismo Capacidade dos objetos assumirem várias formas

58 class ChequeEspecial extends ChequeComum {
<?php class ChequeComum { private $valor; // ... outros métodos da classe public function setValor( $valor ) $this->valor = $valor; } public function getValor() return $this->valor; public function calculaJuros() return $this->valor * 1.25; // soma 25% em cima do valor ?> <?php class ChequeEspecial extends ChequeComum { public function calculaJuros() return $this->valor * 1.10; } } ?>

59 11.Compartilhamento Compartilhar métodos e dados de um objeto com outro. (Reaproveitamento de código) Herança e polimorfismo. Reaproveitamento de código.

60 Exercícios Complementares
Pag.90 á 94


Carregar ppt "Cap2. Conceitos de orientação a objetos"

Apresentações semelhantes


Anúncios Google