orienta o a objetos
Download
Skip this Video
Download Presentation
Orientação a Objetos

Loading in 2 Seconds...

play fullscreen
1 / 37

Orientação a Objetos - PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on

Orientação a Objetos. Curso de Férias 2011 Enrique Pimentel Leite de Oliveira [email protected] Orientação a objetos. Na POO, implementa-se um conjunto de classes que definem os objetos presentes no software .

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Orientação a Objetos' - kennan-jennings


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
orienta o a objetos

Orientação a Objetos

Curso de Férias 2011

Enrique Pimentel Leite de Oliveira

[email protected]

orienta o a objetos1
Orientação a objetos
  • Na POO, implementa-se um conjunto de classes que definem os objetos presentes no software.
  • Cada classe determina o comportamento (definidos nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos.
programa o estruturada vs programa o oo
Programação Estruturada vs. Programação OO
  • A programação estruturada tem como principal foco as ações (procedimentos e funções)
  • A programação OO se preocupa com os objetos e seus relacionamentos.
  • Além do conceito de objeto, a programação OO tem como alicerces os conceitos de encapsulamento, classe, herança e polimorfismo.
conceitos de oo
Conceitos de OO
  • Classe
  • Objeto
  • Instância
  • Atributo
  • Métodos
  • Sobrecarga
  • Herança
  • Encapsulamento
  • Abstração
  • Polimorfismo
  • Classe Abstrata
  • Interface
classe
Classe
  • Representa um conjunto de objetos com suas próprias características.
  • Uma classe define o comportamento dos objetos, através de métodos e quais estados (características) ele é capaz de manter, através de atributos.
  • Exemplo de classe:
    • Seres humanos
    • Carro
classe1
Classe
  • Definição de classe em C#:

public class Minha classe

{

}

atributo
Atributo
  • Normalmente é utilizado internamente na classe (A exposição das características da classe é tarefa dos métodos).
  • Exemplo:

public class Livro

{

// Atributos

private string titulo;

private short ano;

...

}

exemplo
Exemplo
  • Quais seriam os atributos de uma classe Carro ?
    • Placa
    • Número do chassi
    • Marca
    • Modelo
    • Ano
    • Cor
    • Combustível
    • Capacidade
    • Motor
    • Velocidade
m todos
Métodos
  • Conceito: ações que podem ser realizadas pelo objeto;
  • Determinam como um objeto agirá ao receber uma mensagem;
  • São usados para dar acesso às funcionalidades dos objetos;
  • Exemplo:
    • Acender
    • Apagar
    • Iluminar
m todos exemplo
Métodos Exemplo

public class Carro

{

public double Acelerar(double velocidade)

{

}

}

modificadores de acesso
Modificadores de acesso
  • Os modificadores de acesso são palavras-chave que modificam a forma como podem ser acessadas as classes, métodos e/ou variáveis
objetos
Objetos
  • Objeto:
    • É uma instância de uma classe.
    • Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.
    • Exemplo de objetos da classe Humanos: João, José, Maria
    • Exemplo de objetos da classe Carro: Ferrari, Golf, Audi, Celta, Fusca.
objetos1
Objetos
  • Identificação do carro:
    • Placa: WWS2345
    • Número do chassi: 9BGFG09ZYKJ182937
    • Marca : Chevrolet
    • Modelo : Corvette
    • Ano: 2001
    • Cor : Roxo
    • Combustível: gasolina
    • Capacidade: 4 pessoas
    • Motor: 2.3
cria o de um objeto
Criação de um objeto
  • Em C#, utiliza-se a seguinte sintaxe para criação de objetos:
    • = new ();
  • Exemplos:
    • Computador comp1 = new Computador();
    • Pessoa pess = new Pessoa();
cria o de um objeto1
Criação de um objeto

Instâncias da classe Casa (objetos)

Classe

Casa c1 = new Casa();

c1.numero = 12;

c1.cor = Color.Yellow;

Casa c2 = new Casa();

c2.numero = 56;

c2.cor = Color.Red;

Casa c3 = new Casa();

c3.numero = 72;

c3.cor = Color.White;

c3.abrePorta();

Casa

12

boolean abrePorta() {}

int numero

Color cor

static String arquiteto

56

72

construtores
Construtores
  • Construtores são procedimentos realizados na construção de objetos
    • Parecem métodos, mas não têm tipo de retorno e têm nome idêntico ao nome da classe
    • Nem sempre aparecem explícitos em uma classe: podem ser omitidos (o sistema oferece uma implementação padrão)
  • Para cada objeto, o construtor é chamado exatamente uma vez (durante sua criação)
    • Exemplo:
      • Objeto obj = newObjeto();
    • Alguns podem requerer parâmetros
      • Objeto obj = newObjeto(35, "Nome");
construtores1
Construtores
  • Implícitos
    • São aqueles que não são declarados dentro do código da classe, porém são chamados no momento da instanciação.
    • A linguagem se encarrega de iniciar os atributos da classe com os valores padrões adequados aos seus tipos.
  • Explícitos
    • São construtores declarados dentro do código da classe e que têm a finalidade de iniciar os atributos com valores diferentes dos padrões ou realizar determinadas tarefas no momento em que o objeto é criado.
construtores caracter sticas
ConstrutoresCaracterísticas
  • É o primeiro “método” executado por um objeto.
  • Deve ter o mesmo nome da classe.
  • Não pode ter um tipo de retorno.
  • É utilizado quando um objeto é instanciado através do operador new
  • Na maioria das vezes é declarado como public
  • Ele é responsável por alocar memória
construtores exemplo
ConstrutoresExemplo

public class Cliente

{

int codigo;

String nome;

//Construtor

public Cliente()

{

}

}

construtores exemplo1
ConstrutoresExemplo

public class Cliente

{

int codigo;

String nome;

//Construtor

public Cliente(int cod, String nom)

{

codigo = cod;

nome = nom;

}

}

construtores exemplo2
ConstrutoresExemplo

public class Cliente

{

int codigo;

String nome;

//Construtores

public Cliente()

{

}

public Cliente(int cod, String nom)

{

codigo = cod;

nome = nom;

}

}

exerc cio
Exercício
  • Crie uma classe ProcessaStrings que permita:
    • Armazenar uma lista de Strings
    • Contar o número de palavras de uma das strings
      • ContarPalavras(intindiceString)
    • Inverter uma das palavras
      • InverterString(intindiceString)
    • Concaternar duas strings
      • ConcatenarStrings(int indiceString1, int indiceString2)
  • Crie uma classe Teste para utilizar a classe ProcessaStrings
exerc cio1
Exercício
  • Crie uma classe Veiculo com as seguintes características:
    • Marca
    • Modelo
    • Ano
    • Placa
  • Em seguida crie uma classe Estacionamento que permita controlar a entrada e saída e veículos.
    • Considere que a primeira hora custa R$ 3,00 e as demais horas R$ 1,00.
    • Modele a classe Estacionamento de acordo com as necessidades do seu projeto.
heran a
Herança
  • Uma característica importante da programação orientada a objetos é permitir a criação de novas classes com base em uma classe já existente
    • Esta classe existente pode ser tanto uma classe do próprio C#, ou ainda uma classe construída por outra pessoa
      • Superclasse: classe já existente
      • Subclasse: classe criada a partir da superclasse
  • Objetivo: proporcionar o reutilização de código
heran a1
Herança
  • Herança
    • “Herança é a capacidade de reutilizar código pela especialização de soluções genéricas já existentes”
    • Novas classes são criadas a partir de outras já existentes
      • Subclasse herda de uma Superclasse
        • atributos
        • métodos
      • Subclasse
        • Absorve atributos e comportamentos além de adicionar os seus próprios
        • Pode sobrescrever métodos da superclasse
      • Construtores nunca são herdados!
heran a2
Pai

- numero: int

...

+ Pai (n: int)

+ set (n: int)

+ get ( ): int

...

Filho

- dado: String

...

+ Filho (n: int , d: String)

+ set (d: String)

+ get ( ): String

...

Herança
  • Notação UML
heran a3
Herança
  • Em C#, utiliza-se : para definir herança de classes
  • Exemplos:

public class :

{...}

public class Motorista : Funcionario{...}

public class Engenheiro : Funcionario{...}

heran a4
Herança
  • Os métodosna subclassequeforamherdados, continuamacessandotodososmembros (atributos) dasuperclasse, incluindoosnãoherdados.
    • Se for necessário invocar um método da superclasse dentro de algum método da subcalsse, em C# utiliza-se: base.Metodo()
  • Apesar dos construtoresdasuperclassenãoseremherdados, elespodem ser invocadosparainicializarosatributosherdados (membrosdasuperclasse), através com comando:
    • base()
heran a exemplo
Herança - Exemplo

public class Animal

{

private String tipo;

public Animal(String tipo1)

{

tipo = tipo1;

}

public void show()

{

Console.Write(“Eu sou um ” + tipo);

}

}

public class Cachorro : Animal

{

private String nome; // Nome do cachorro

private String raça; // Raça do cachorro

public Cachorro(String nome1): base(“cachorro”)

{

nome = nome1; // Nome fornecido

raça = “Desconhecida”; // Raça default

}

public Cachorro(String nome1, String r):base(“cachorro”)

{

nome = nome1; // Nome fornecido

raça =r; // Raça fornecida

}

}

heran a5
Herança
  • Subclasse herda os membros da superclasse
      • Os membros da superclasse são tratados como membros da subclasse, isto é, como se tivessem sido declarados dentro da subclasse.
      • Nem todos os atributos e métodos da superclasse são obrigatoriamente acessíveis na subclasse, pois isto dependerá dos modificadores de acesso.
      • Modificador private não permite acesso direto dentro da subclasse.
  • Um objeto possui seus próprios atributos e métodos, mais os atributos e métodos da superclasse
heran a6
Herança
  • Herdando atributos e métodos
    • publicx protectedx private
      • public: acessível em qualquer classe
      • protected: acessível por métodos da própria classe ou de uma subclasse
      • private: acessível somente nos métodos da própria classe
    • Métodos construtores NUNCA são herdados
    • Os métodos na classe derivada que foram herdados da superclasse, continuam podendo acessar TODOS os membros da superclasse
exerc cio2
Exercício
  • Escreva o código para implementar a seguinte hierarquia de classes:
  • Atributos da classe “Animal” :
    • String nome
  • Métodos da classe “Animal”:
    • voidimp() // imprime o nome
    • // e a classe do animal
    • StringgetNome()
    • voidtalk() // “Me not falar”
  • Métodos da classe “Passaro”:
    • voidtalk() // “piu, piu.”
  • Métodos da classe “BemTeVi”:
    • voidtalk() // “bem-te-vi!”
  • Atributos da classe “Papagaio”:
    • Stringvocabulario // frase
  • Métodos da classe “Papagaio”:
    • voidtalk() // exibe vocabulario
    • voidsetVoc(String v) //altera voc.
  • A classe mamífero não tem atributos ou métodos.
  • Atributos da classe “Cachorro”:
    • booleanlateMuito
  • Métodos da classe “Cachorro”:
    • voidsetLateAlto()
    • voidsetLateBaixo()
    • voidtalk() // “AU! AU!” ou “au, au...”
  • Métodos da classe “Vaca”;
    • voidtalk() // “Muuu...”
  • Implemente a classe Zoo (possui apenas o método main) que testa a hierarquia de classes, mantendo vetores de animais. A saída do programa deve ser feita via uma janela gráfica.
slide35
Atributos da classe “Animal” :
    • String nome
  • Métodos da classe “Animal”:
    • voidimp() // imprime o nome
    • // e a classe do animal
    • StringgetNome()
    • voidtalk() // “Me not falar”
  • Métodos da classe “Passaro”:
    • voidtalk() // “piu, piu.”
  • Métodos da classe “BemTeVi”:
    • voidtalk() // “bem-te-vi!”
  • Atributos da classe “Papagaio”:
    • Stringvocabulario // frase
  • Métodos da classe “Papagaio”:
    • voidtalk() // exibe vocabulario
    • voidsetVoc(String v) //altera voc.
exerc cio final
Exercício Final
  • Crie um programa que permita controlar as contas bancárias de um cliente
  • O sistema deverá permitir:
    • Cadastrar contas (conta corrente, conta especial e poupança)
    • Fazer saques e depósitos
    • Movimentação entre contas.
refer ncias
Referências
  • Deitel, C# como Programar – Editora Makron Books – Segunda edição, 2007
  • Rafael Santos, Introdução à Programação Orientada a Objetos usando JAVA – Editora Campus – Série SBC
  • Desenvolvedor 5 estrelas. Disponível em http://www.mslatam.com/brasil/dce/
  • Desenvolvimento para Web. Disponível em http://msdn.microsoft.com/pt-br/ff380144.aspx
ad