Orientação a Objetos Erick Luis Moraes de Sousa [email protected] .
Transcript of Orientação a Objetos Erick Luis Moraes de Sousa [email protected] .
![Page 1: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/1.jpg)
![Page 3: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/3.jpg)
REVISÃO
![Page 4: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/4.jpg)
-
Revisão• Loops :
– While;– Dowhile;– Foreach;
• Declaração de Tipos Básicos:– Vetor;– List;– Linked List;– Pilha;– Fila;– Struct;– Enum;– Dicionário.
• Incluir outras classes:– using nomeDaClasse;
![Page 5: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/5.jpg)
OBJETIVOS
![Page 6: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/6.jpg)
6
Objetivos
• Entender a “filosofia” da Orientação a Objetos;
• Conceitos básicos que envolvem a Orientação a Objetos.
![Page 7: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/7.jpg)
Teoria Prática
![Page 8: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/8.jpg)
Teoria
Orientação a Objetos
Introdução Aplicações
Estruturas Herança Modificadores de Acesso
![Page 9: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/9.jpg)
9
Introdução• Esse “novo” paradigma começou a surgir na década 60:
– Necessidade de resolver problemas no desenvolvimento de softwares complexos;– Reduzir o custo de manutenção;
• Principal característica “filosófica” da Orientação a Objetos:
– “Nova” forma de representação do mundo;
• Características atraentes para a programação:
– Permite um maior reaproveitamento de código;– Linguagem mais alto-nível; Sketchpad: O primeiro editor gráfico
orientado a objetos.
![Page 10: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/10.jpg)
10
Aplicações• Programas de Edição de Imagem:
– Photoshop, Corel Draw;
• Jogos:– Tibia, Fatal Racing, World of Warcraft;
• Programas de Edição de Som:– Fruityloops, Guitar Pro;
• Sistemas Operacionais:– Windows;
• Vários outros segmentos do mercado de software.
![Page 11: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/11.jpg)
Teoria
Orientação a Objetos Estruturas
Classe Objeto Métodos Outros
Herança Modificadores de Acesso
![Page 12: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/12.jpg)
12
Classe• Estrutura utilizada para abstrair objetos com características similares;
• Exemplo: Animais, carros, partículas, formas geométricas, objetos;
• A classe é meramente uma representação, não possui ‘vida’;
• Declaração de uma classe em C#:
class suaClasse{
//Lógica do programa aqui}
![Page 13: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/13.jpg)
13
Objeto• É uma maneira de representar o mundo em uma forma computacional;
• Pode representar uma entidade concreta (arquivos,camelos) ou conceitos (estratégias,leis);
• Características desejáveis:• Alta coesão;• Baixa dependência;
• Criando um objeto em C#:• List<int> = new List<int>(); //Cria um novo objeto que é uma lista de
//inteiros
![Page 14: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/14.jpg)
Teoria
Orientação a Objetos Estruturas
Classe Objeto Método
Construtor Propriedade
Outros
Herança Modificadores de Acesso
![Page 15: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/15.jpg)
15
Métodos• Métodos são ações internas de uma classe pode realizar;
• Métodos de uma Lista Ligada: Ordenar, Inserir, Remover;
• Três tipos de métodos especiais:• Construtores;• Destrutores;• Propriedades;
• Declaração de um método:ModAcesso TipoDoRetorno NomeDoMetodo ( Parâmetros ){
//Lógica do Método}
![Page 16: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/16.jpg)
16
Construtor• Cria uma instância de uma classe e inicializa-a;
• Comparativo com C:• Alocação dinâmica de memória usando o malloc;
• Por padrão, toda classe já possui um construtor que retorna um objeto vazio;
• Declaração de um construtor:
• ModAcesso NomeDaClasse ( Parâmetros ){
//Inicializar variáveis, instanciar objetos, dentre outras ações.}
![Page 17: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/17.jpg)
17
Propriedades• Métodos específicos para a manipulação de variáveis;
• Garantem o acesso e a modificação seguros às variáveis de uma classe/objeto:• Em C# há dois comandos específicos para isso: get e set;
• Declaração de uma propriedade:ModAcesso TipoDaVariável NomeDaPropriedade{
get { return nomeDaVariável; }set { nomeDaVariável = value; }
} NomeDaPropriedade = valor; //Atribui um determinado valor à variável; variável = NomeDaPropriedade;
![Page 18: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/18.jpg)
Teoria
Orientação a Objetos Estruturas
Classe Objeto Método Outros
Herança Modificadores de Acesso
![Page 19: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/19.jpg)
19
Outros
• Namespace;• Atributos;• Delegates;• Reflection;• Constraints.
![Page 20: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/20.jpg)
Teoria
Orientação a Objetos Estruturas Herança
Sobrecarga
Modificadores de Acesso
![Page 21: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/21.jpg)
21
Herança
• Herança é a possibilidade de uma classe herdar características de uma superclasse;
• Objetivo: Re-aproveitamento de código;
• Classes mais específicas herdam de classes menos específicas:– Gatos herdam de Felinos, que herdam de Animais;
![Page 22: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/22.jpg)
22
Herança• Herdando em C#:• class nomeDaClasse: nomeDaSuperClasse
{}
• Acessando membros de uma classe derivada(herdada):– Utilizada a palavra-chave ‘base’;– base.metodo(parametros); , base.variavel;
![Page 23: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/23.jpg)
Teoria
Orientação a Objetos Estruturas Herança Modificadores
de Acesso
Principais Outros
![Page 24: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/24.jpg)
24
Modificadores
• Modificadores de Acesso:– Public:
• O membro declarado como public pode ser acessado de qualquer outra classe do jogo;
– Private:• Só pode ser acessada dentro do escopo no qual foi declarada;
– Internal:• Só pode ser acessada por membros do mesmo código;
– Protected:• Só pode ser acessada da classe em que foi declarada ou de
classes que herdem da primeira.
![Page 25: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/25.jpg)
25
Modificadores
– Static:• Quando se declara algo como static, o mesmo é
armazenado numa posição de memória, podendo-se utilizá-la e alterá-la sem ter de criar novas instâncias dela;• Não existe construtor;• Métodos e variáveis são acessados diretamente;
– Sealed:• Nenhuma classe pode herdar de outra classe que
possua o modificador sealed.
![Page 26: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/26.jpg)
26
Modificadores
– Override:• Quando herdamos de uma superclasse e queremos re-
implementar os métodos daquela, utilizamos o modificador override;
![Page 27: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/27.jpg)
27
Outros
– Const;– Extern;– Event;– Abstract;– Partial;– Readonly;– Unsafe;– Virtual;– Volatile.
![Page 28: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/28.jpg)
Teoria Prática
![Page 29: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/29.jpg)
29
Prática
• Re-implementar o Pong em XNA utilizando orientação a Objetos;
• Implementar um Space Invaders em XNA;
• Implementar um sistema simples de compras e vendas de uma loja em um jogo de RPG em modo texto;
• Criar um sistema que armazena um herói/monstro/NPC de RPG em uma estrutura de dados.
![Page 30: Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com .](https://reader036.fdocumentos.com/reader036/viewer/2022070312/552fc17b497959413d8f086c/html5/thumbnails/30.jpg)
30
Agradecimentos
public class palestra{
public void fim(){
Console.WriteLine ( “Obrigado!\n” );}
}