poo – programação orientada a objetos ronny anderson xna natal academic’s [email protected]...

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

Upload: adelino-balsemao-frade

Post on 07-Apr-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: POO – Programação Orientada a Objetos Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

SumárioSumárioIntroduçãoIntroduçãoPOOPOOObjetos Objetos ClassesClassesAbstraçãoAbstraçãoEncapsulamentoEncapsulamentoPolimorfismoPolimorfismoVisibilidadeVisibilidadeTipos de DadosTipos de DadosOperadoresOperadores

Page 3: POO – Programação Orientada a Objetos Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

IntroduçãoIntroduçãoEsta 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

ObjetosObjetosUm 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

ObjetosObjetosObjetos 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

ObjetosObjetosOs 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 dadosIdentidade: 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

ClassesClassesClasses 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

AbstraçãoAbstraçãoQuando 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

AbstraçãoAbstraçãoExemplo:

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

EncapsulamentoEncapsulamento é 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

EncapsulamentoExemplo:

Page 16: POO – Programação Orientada a Objetos Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

PolimorfismoPolimorfismo:

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

PolimorfismoSobrecarga:

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

PolimorfismoSobrescrita:

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

VisibilidadePublic:

O nível de acesso é irrestrito

Page 22: POO – Programação Orientada a Objetos Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

VisibilidadePrivate:

O nível de acesso se restringe apenas a classe. Não é passado por herança.

Page 23: POO – Programação Orientada a Objetos Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

VisibilidadeProtected

É 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

VisibilidadeInternal:

É 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

VisibilidadeProtected 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

VisibilidadeOBS:

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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

Tipos de DadosToda 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

Tipos de DadosTipos primitivos do C#

Tipo Framework Class Library (CLR) Descrição

sbyte System.SByte Valor a 8 bits com sinalbyte System.Byte Valor a 8 bits sem sinalshort System.Int16 Valor a 16 bits com sinalushort System.UInt16 Valor a 16 bits sem sinalint System.Int32 Valor a 32 bits com sinaluint System.UInt32 Valor a 32 bits sem sinallong System.Int64 Valor a 64 bits com sinalulong System.UInt64 Valor a 64 bits sem sinalchar System.Char Carácter Unicode a 16 bitsfloat System.Single IEEE 32 bitsdouble System.Double IEEE 64 bitsbool 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

Tipos de DadosTipos 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

Tipos de DadosConversões Implícitas:

Ocorrem em atribuições de variáveis ou passagem de parâmetros a métodosAcontece 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

Tipos de DadosStruct X ClassStruct(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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

Tipos de DadosStruct(Exemplo):

struct Tamanho {

int altura;int largura;

}

Page 33: POO – Programação Orientada a Objetos Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

Tipos de DadosClass(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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

OperadoresAssim 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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

OperadoresCategoria Operadores Aritmética +-*/%Lógica (booleana e bitwise) & | ^! ~ && || true falseConcatenaçã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 newInformação de tipo is sizeof typeof Controle de exceção de overflow Checked uncheckedIndireção e endereço * --> [] &

Page 36: POO – Programação Orientada a Objetos Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

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

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

uncheckedUnário + - ! ~++x –x (T)xMultiplicativo * / %Aditivo + -Shift << >>Relacional < > <= >= isComparaçã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 Ronny Anderson XNA Natal Academic’s ronnytds@gmail.com Tecnologia em Desenvolvimento de Software CEFET-RN

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

[email protected]@googlegroups.com