1 / 60

Cap2. Conceitos de orientação a objetos

Cap2. Conceitos de orientação a objetos. 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).

Download Presentation

Cap2. Conceitos de orientação a objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. publicclass Conta { privateDouble saldo; publicvoidsetSaldo(Double saldo) { this.saldo= saldo; } public Double getSaldo() { returnsaldo; } publicvoid depositar(Double valor){ saldo += valor; } publicvoidverificaSaldo(){ System.out.println("Valor do Saldo: "+getSaldo()); } }

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

  11. publicclass Pessoa { int _id; string _nome; DateTime _dataNascimento; publicintCalcularIdade() { int idade = DateTime.Now.Year - this._dataNascimento.Year; return (idade); } publicintCalcularIdade(DateTimedataReferencia) { int idade = dataReferencia.Year - this._dataNascimento.Year; return (idade); } }

  12. classValoresInt { publicint calculadora() { int a = 10; intb = 20; int c = a + b; returnc; } } publicclassMetodo_Com_Retorno_Inteiro { publicstaticvoidmain(String[] args) { ValoresIntvalores = 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. publicstaticvoidmain(String[] args) { //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 { inttamanho; intcanal; booleanligada; }

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

  21. Classe em C# publicclass Pessoa { int _id; string _nome; DateTime _dataNascimento; }

  22. Classe em PHP classconexao{ 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: 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. privatevoid button1_Click(objectsender, EventArgs e) { //Instanciando um objeto Sociosoc = new Socio(); //Inserindo atributos soc.Nome = "Thiago Montebugnoli"; soc.Rg = "41.999.999-9"; soc.Cpf = "312.999.999-99"; soc.Nascimento = DateTime.Parse("15/11/1984"); soc.Telefone = "(14) 9999-9999"; 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 classFisica : Pessoa classJuridica : Pessoa classCarro extends Veiculo PublicClassPessoaFisica Inherits Pessoa

  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 classChequeEspecialextendsChequeComum { publicfunctioncalculaJuros() { 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 • EndClass • 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 • EndClass 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 EndClass

  36. //Pessoa namespaceHeranca { publicclass Pessoa { publicstring Nome { get; set; } publicvoidescreverNome() { Console.Write(this.Nome); } } } //Pessoa Física namespaceHeranca { publicclassFisica : Pessoa { publicstringCpf { get; set; } publicBooleanvalidarCpf() { returnthis.Cpf.Length == 11; } } } //Pessoa Jurídica namespaceHeranca { publicclassJuridica : Pessoa{ publicstringCnpj { get; set; } publicBooleanvalidarCnpj() { returnthis.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 abstract class Forma { privatedouble _area; privatestring _cor; privatedouble _perimetro; publicstring Cor { get { return _cor; } set { _cor = value; } } public double Area { get{ return _area; } set { _area = value; } } publicdoublePerimetro { get{ return_perimetro; } set{ _perimetro = value; } }

  45. Vamos definir a classe Quadrado que vai herdar da classe Forma publicclass Quadrado : Forma { privatedouble lado; publicdouble Lado { get {return lado;} set {lado = value;} } } • publicoverridevoidCalcularArea() • { • this.Area = lado * lado; • } • publicoverridevoidCalcularPerimetro() • { • 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. //popular o objeto pessoa Pessoa pessoa = new Pessoa(); pessoa.Nome = "Marcelo"; pessoa.CPF = "000.000.000-00"; pessoa.Telefone = "(00) 0000-0000"; //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.XmlTextWriterxmlWriter=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.XmlTextReaderxmlReader = 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 stringnomePessoa = pessoa.Nome;

  48. 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

  49. 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. 

More Related