37
POO – Programação POO – Programação Orientada a Objetos Orientada a Objetos Ronny Anderson Ronny Anderson XNA Natal Academic’s XNA Natal Academic’s [email protected] [email protected] Tecnologia em Desenvolvimento de Tecnologia em Desenvolvimento de Software CEFET-RN Software CEFET-RN

POO – Programação Orientada a Objetos

Embed Size (px)

DESCRIPTION

POO – Programação Orientada a Objetos. Ronny Anderson XNA Natal Academic’s [email protected] Tecnologia em Desenvolvimento de Software CEFET-RN. Sumário. Introdução POO Objetos Classes Abstração Encapsulamento Polimorfismo Visibilidade Tipos de Dados Operadores. Introdução. - PowerPoint PPT Presentation

Citation preview

Page 1: POO – Programação Orientada a Objetos

POO – Programação POO – Programação Orientada a ObjetosOrientada a Objetos

Ronny AndersonRonny AndersonXNA Natal Academic’sXNA Natal Academic’[email protected]@gmail.com

Tecnologia em Desenvolvimento de Tecnologia em Desenvolvimento de Software CEFET-RNSoftware CEFET-RN

Page 2: POO – Programação Orientada a Objetos

SumárioSumárioIntroduçãoIntrodução

POOPOO

Objetos Objetos

ClassesClasses

AbstraçãoAbstração

EncapsulamentoEncapsulamento

PolimorfismoPolimorfismo

VisibilidadeVisibilidade

Tipos de DadosTipos de Dados

OperadoresOperadores

Page 3: POO – Programação Orientada a Objetos

IntroduçãoIntrodução

Esta apresentação tem como objetivo Esta apresentação tem como objetivo mostrar os conceitos da orientação a mostrar os conceitos da orientação a objetos voltados para uma linguagem objetos voltados para uma linguagem de programação(C#) e também de programação(C#) e também familiarizar a sintaxe da linguagem.familiarizar a sintaxe da linguagem.

Page 4: POO – Programação Orientada a Objetos

POOPOO

Se escrever um programa de computador em uma linguagem orientada a objetos, você criará em seu computador um modelo de alguma parte do mundo real. As partes das quais o modelo é construído são os objetos que aparecem no domínio do problema.

Page 5: POO – Programação Orientada a Objetos

Objetos Objetos

Um objeto representa algo do mundo real: concreto ou abstrato;

A percepção dos seres humanos é dada através dos objetos;

Um objeto é uma entidade que exibe algum comportamento bem definido.

Page 6: POO – Programação Orientada a Objetos

ObjetosObjetos

Um objeto representa um item identificável, uma unidade, ou entidade, individual com uma regra bem definida.

Exemplos:LivroCarroConta BancáriaReuniãoComputador

Page 7: POO – Programação Orientada a Objetos

ObjetosObjetos

Objetos parecidos têm a mesma Objetos parecidos têm a mesma classificação:classificação:

Carro A, cor Verde, Duas Portas.Carro A, cor Verde, Duas Portas.

Carro B, cor Amerelo, Quatro Portas.Carro B, cor Amerelo, Quatro Portas.

Os dois são carros.Os dois são carros.

O conhecimento a determinado objeto é dado a partir de sua classificação.

Page 8: POO – Programação Orientada a Objetos

ObjetosObjetos

Concretos: Concretos: Camisa, Bola, Controle RemotoCamisa, Bola, Controle Remoto

Abstratos: Abstratos: Música, Filme, Transação BancáriaMúsica, Filme, Transação Bancária

Modelo de Objetos:Modelo de Objetos:OBJETOOBJETO = = DADOSDADOS + + OPERAÇÕESOPERAÇÕES

Page 9: POO – Programação Orientada a Objetos

ObjetosObjetos

Os objetos possuem 3 propriedades:Os objetos possuem 3 propriedades:Estado: Suas Estado: Suas característicascaracterísticas(dados/atributos)(dados/atributos)

Comportamento: Suas Comportamento: Suas operaçõesoperações(métodos) (métodos) sobre seus dadossobre seus dados

Identidade: Seu valor de referênciaIdentidade: Seu valor de referência

Os valores dos Os valores dos dadosdados são modificados são modificados a partir das a partir das operaçõesoperações sobre esses sobre esses dadosdados

Page 10: POO – Programação Orientada a Objetos

ClassesClasses

Classes são especificações para objetos;

Uma classe serve de modelo para vários objetos semelhantes que possuem os mesmos tipos de informação em seu estado e tem os mesmos comportamentos;

Page 11: POO – Programação Orientada a Objetos

ClassesClassesUma Classe é uma fabrica de objetos idênticos no que diz respeito a sua interface e sua implementação.

Page 12: POO – Programação Orientada a Objetos

AbstraçãoAbstração

Quando queremos diminuir a complexidade de alguma coisa, selecionamos parte do que estamos querendo;

Não se analisa o “todo”, em POO é importante analisar as partes para entender o todo.

Page 13: POO – Programação Orientada a Objetos

AbstraçãoAbstração

Exemplo:Um coelho para sua dona tem os atributos cor e aparência e sob o ponto de vista de um veterinário tem atributos tais como peso e tamanho.

Page 14: POO – Programação Orientada a Objetos

Encapsulamento

Encapsulamento é o processo de esconder todos os detalhes de um objeto que não contribuem para as suas características essenciais;

Um objeto em um programa “encapsula” todo o estado e o comportamento;

Page 15: POO – Programação Orientada a Objetos

Encapsulamento

Exemplo:

Page 16: POO – Programação Orientada a Objetos

Herança

É o mecanismo para expressar a similaridade entre Classes, simplificando a definição de classes iguais que já foram definidas.

Page 17: POO – Programação Orientada a Objetos

Polimorfismo

Polimorfismo:Poli -> Várias

Morfos -> Formas

O conceito de polimorfismo está associado a herança.

O polimorfismo trabalha com a redeclaração de métodos previamente herdados por uma classe.

Page 18: POO – Programação Orientada a Objetos

Polimorfismo

Sobrecarga:A sobrecarga pode mudar tanto a quantidade quanto os tipos dos argumentos; mas não pode mudar o tipo do valor de retorno de um método.public static void setTamanhoRetangulo(int lado){

this.altura = (double) lado;this.largura = lado;

}

public static void setTamanhoRetangulo(double alt, int larg){

this.altura = alt;this.largura = larg;

}

Page 19: POO – Programação Orientada a Objetos

Polimorfismo

Sobrescrita:Pode-se definir métodos com o mesmo nome, recebendo os mesmos argumentos, porem a sua implementação é realizada de forma diferente. Chamamos isso de sobrescrita.

OBS.: Isso acontece para classes diferentes.

public static int soma(int a){

return a+a;

}

public static int soma(int b){

return b+b+b;

}

Page 20: POO – Programação Orientada a Objetos

Visibilidade

- Private;

+ Public;

# Protected;

~ Default ou Friendly;(não existe em C#)

Internal(C#)

Protected Internal(C#)

Page 21: POO – Programação Orientada a Objetos

Visibilidade

Public: O nível de acesso é irrestrito

Page 22: POO – Programação Orientada a Objetos

Visibilidade

Private: O nível de acesso se restringe apenas a classe.

Não é passado por herança.

Page 23: POO – Programação Orientada a Objetos

Visibilidade

ProtectedÉ visível a toda a classe

É visível as classes do mesmo namespace

É passado por herança(mesmo em namespaces diferentes)

Page 24: POO – Programação Orientada a Objetos

Visibilidade

Internal:É o nível de acesso que não tem restrição dentro do mesmo assembly. O modificador internal é utilizado com classes internas ao sistema, como helpers a classe, que são auxiliares do sistema e não devem ou não precisam ser expostas.

Page 25: POO – Programação Orientada a Objetos

Visibilidade

Protected Internal:É uma combinação de dois modificadores: Protected e Internal.

Tem nível de acesso semelhante ao internal, com extensão aos tipos derivados, incluídos até mesmo em outro assembly tendo acesso ao membro ou ao tipo.

Page 26: POO – Programação Orientada a Objetos

Visibilidade

OBS: Se um tipo não for precedido de seu modificador de acesso ele será considerado internal.

Se um membro não for precedido de seu modificador de acesso ele será considerado private.

Page 27: POO – Programação Orientada a Objetos

Tipos de Dados

Toda linguagem de programação oferece um grupo básico de tipo de dados, conhecidos como tipos primitivos ou fundamentais.

Page 28: POO – Programação Orientada a Objetos

Tipos de DadosTipos primitivos do C#

Tipo Framework Class Library (CLR) Descrição

sbyte System.SByte Valor a 8 bits com sinal

byte System.Byte Valor a 8 bits sem sinal

short System.Int16 Valor a 16 bits com sinal

ushort System.UInt16 Valor a 16 bits sem sinal

int System.Int32 Valor a 32 bits com sinal

uint System.UInt32 Valor a 32 bits sem sinal

long System.Int64 Valor a 64 bits com sinal

ulong System.UInt64 Valor a 64 bits sem sinal

char System.Char Carácter Unicode a 16 bits

float System.Single IEEE 32 bits

double System.Double IEEE 64 bits

bool System.Boolean 1 bit (True ou False)

decimal System.Decimal float a 128 bits (não é primitivo no CTS)

object System.Object Base de todos os tipos

string System.String Array de caracteres

Page 29: POO – Programação Orientada a Objetos

Tipos de Dados

Tipos Valor: São alocados na pilha(Stack).

São usados para tipos primitivos.

Tipos Referência: São alocados na Heap(Managed Heap).

São usados quando há necessidade de manipular um objeto.

Tipo Ponteiro: Podem ser utilizados em código inseguro(unsafe code).

Page 30: POO – Programação Orientada a Objetos

Tipos de Dados

Conversões Implícitas: Ocorrem em atribuições de variáveis ou passagem de parâmetros a métodos

Acontece automaticamente(do menor para o maior).

Conversões Explícitas(Cast): Ocorre quando uma variável pode ser mais de um tipo.

Não ocorre automaticamente.

Necessário colocar o tipo para o qual vai ser convertido entre parênteses.

Page 31: POO – Programação Orientada a Objetos

Tipos de Dados

Struct X Class

Struct(Estrutura):É tratada como tipo valor.

Suporta construtores, constantes, campos, métodos, propriedades, indexadores, operadores e tipos aninhados.

Não suporta referências(membros, construtores parametrizados).

É um agrupamento de tipos primitivos e/ou compostos.

Page 32: POO – Programação Orientada a Objetos

Tipos de Dados

Struct(Exemplo):

struct Tamanho

{

int altura;

int largura;

}

Page 33: POO – Programação Orientada a Objetos

Tipos de Dados

Class(Classe):É tratada como tipo referência.

Suporta construtores, constantes, campos, métodos, propriedades, indexadores, operadores e tipos aninhados.

Suporta referências.

É uma classificação de objetos.

Page 34: POO – Programação Orientada a Objetos

Operadores

Assim com os tipos de dados, C# oferece um grupo de operadores que nos permitem realizar as mais diversas operações.

Page 35: POO – Programação Orientada a Objetos

OperadoresCategoria Operadores

Aritmética +-*/%

Lógica (booleana e bitwise) & | ^! ~ && || true false

Concatenação de string +

Incremento e decremento ++ --

Shift << >>

Relacional = = != <> <= >=

Atribuição = += -+ *= /= %= &= |= ^= <<= >>=

Acesso a membro .

Indexação []

Cast ( )

Condicional ?:

Delegate (concatenação e remoção) + -

Criação de objeto new

Informação de tipo is sizeof typeof

Controle de exceção de overflow Checked unchecked

Indireção e endereço * --> [] &

Page 36: POO – Programação Orientada a Objetos

OperadoresÉ interessante ressaltar que existe uma precedência entre os operadores.

Categoria Operadores

Primário (x) x.y f(x) a[x] x++ x– new typeof sizeof checked unchecked

Unário + - ! ~++x –x (T)x

Multiplicativo * / %

Aditivo + -

Shift << >>

Relacional < > <= >= is

Comparação == !=

Lógico AND &

Lógico XOR ^

Lógico OR |

Condicional AND &&

Condicional OR ||

Condicional ?:

atribuição = *= /= %= += -= <<= >>= &= ^= |=

Page 37: POO – Programação Orientada a Objetos

www.xna.comwww.xna.comwww.nudes.cefetrn.br/xnawww.nudes.cefetrn.br/xna

[email protected]@googlegroups.com