Cap2. Conceitos de orientação a objetos

Slides:



Advertisements
Apresentações semelhantes
Modificadores Marco Antonio. Introdução Em todas as linguagens de programação o acesso a classes/métodos deve seguir algumas regras.
Advertisements

Orientação a Objetos: Encapsulamento e Classificação
Persistência de objetos em arquivo texto usando Java
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Generalização, Especialização e Conceitos
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Iniciação ao Java – Márcio F. Campos
Polimorfismo e Classes Abstratas Profa
Diagrama de Classes.
Linguagem de Programação II
Linguagem de Programação II
Wagner Santos C. de Jesus
Área de Desenvolvimento de Sistemas
Membros estáticos.
Capítulo 9 Herança 1.
UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS!
Herança e Polimorfismo
Classes e objetos P. O. O. Prof. Grace.
CRIANDO OBJETOS EM JAVA
Curso de extensão em Desenvolvimento Web
Programação Orientada a Objetos com Java
Conceitos básicos de orientação a objetos
JAVA Orientação a Objetos
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Sobrecarga e Encapsulamento
Interfaces.
Programação Orientada à Objetos
Programação I Aula 2 (Métodos)
Classes, Objetos, Atributos e Métodos JAVA
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Classes Abstratas e Interfaces.
Professora Lucélia Oliveira
Paulo Borba Centro de Informática Universidade Federal de Pernambuco
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Programação Orientada à Objetos
Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades.
Curso de Aprendizado Industrial Desenvolvedor WEB
Herança em POO Importante:
Wagner Santos C. de Jesus
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação Orientada a Objetos - Java
Implementação Orientada a Objetos – Aula 03
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Prof. Gilberto Irajá Müller
Orientação a Objetos usando Java
Java Kickstart, day 2 Semelhanças com linguagem C.
Classes Abstratas P. O. O. Prof. Ângela e Grace.
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
Orientação a Objetos Erick Luis Moraes de Sousa
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Classes Abstratas e Interface
Herança e Arquitetura em camadas
Classes Abstratas e Interfaces GX – Aula05 1.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Herança Modelagem e Programação Orientada a Objetos
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
20/04/2017 Orientação a Objetos 1 1.
Módulo II Capítulo 1: Orientação a Objetos
4 CONCEITOS BÁSICOS EM POO Dilvan Moreira.  Objetos  Classes  Herança  Polimorfismo Lembrando: 4 Conceitos Básicos.
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin/ Marcia Bissaco Universidade de Mogi das Cruzes
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

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

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.

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

Exercícios de Fixação

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

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

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.

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()); }

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

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;

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() );

// 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);

Exercícios de Fixação

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.

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

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(); }

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

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

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

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

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

Exercícios de Fixação

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.

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

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

private void button1_Click(object sender, EventArgs e) { //Instanciando um objeto Socio soc = 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(); }

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

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

<? 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 ?>

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

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

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

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

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

//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;

Exercícios de Fixação

Crie a seguinte hierarquia de Classes:

Crie a seguinte hierarquia de Classes:

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 

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.

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.

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

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;

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; }

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.

//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.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;

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

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. 

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.

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

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.

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

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

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

10.Polimorfismo Capacidade dos objetos assumirem várias formas

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; } } ?>

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

Exercícios Complementares Pag.90 á 94