Orienta o a objetos
This presentation is the property of its rightful owner.
Sponsored Links
1 / 37

Orientação a Objetos PowerPoint PPT Presentation


  • 53 Views
  • Uploaded on
  • Presentation posted in: General

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 .

Download Presentation

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


Programa o estruturada vs programa o oo1

Programação Estruturada vs. Programação OO


Conceitos de oo

Conceitos de OO

  • Classe

  • Objeto

  • Instância

  • Atributo

  • Métodos

  • Sobrecarga

  • Herança

  • Encapsulamento

  • Abstração

  • Polimorfismo

  • Classe Abstrata

  • Interface


Classe x objeto

Classe x Objeto


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:

    • <Tipo> <nome> = new <Tipo>();

  • 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 <nomesubclasse> : <nomesuperclasse>

    {...}

    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.


    Orienta o a objetos

    • 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


  • Login