POO – Programação Orientada a Objetos

Preview:

DESCRIPTION

POO – Programação Orientada a Objetos. Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com 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

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

Ronny AndersonRonny AndersonXNA Natal Academic’sXNA Natal Academic’sronnytds@gmail.comronnytds@gmail.com

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

SumárioSumárioIntroduçãoIntrodução

POOPOO

Objetos Objetos

ClassesClasses

AbstraçãoAbstração

EncapsulamentoEncapsulamento

PolimorfismoPolimorfismo

VisibilidadeVisibilidade

Tipos de DadosTipos de Dados

OperadoresOperadores

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.

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.

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.

ObjetosObjetos

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

Exemplos:LivroCarroConta BancáriaReuniãoComputador

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.

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

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

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;

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

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.

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.

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;

Encapsulamento

Exemplo:

Herança

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

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.

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;

}

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;

}

Visibilidade

- Private;

+ Public;

# Protected;

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

Internal(C#)

Protected Internal(C#)

Visibilidade

Public: O nível de acesso é irrestrito

Visibilidade

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

Não é passado por herança.

Visibilidade

ProtectedÉ visível a toda a classe

É visível as classes do mesmo namespace

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

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.

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.

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.

Tipos de Dados

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

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

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

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.

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.

Tipos de Dados

Struct(Exemplo):

struct Tamanho

{

int altura;

int largura;

}

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.

Operadores

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

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 * --> [] &

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 = *= /= %= += -= <<= >>= &= ^= |=

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

xna-natal-academics@googlegroups.comxna-natal-academics@googlegroups.com

Recommended