Orientação a Objetos Erick Luis Moraes de Sousa puyolzits@gmail.com

Preview:

Citation preview

Orientação a Objetos

Erick Luis Moraes de Sousapuyolzits@gmail.com

http://forum.gamux.com.br

REVISÃO

-

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;

OBJETIVOS

6

Objetivos

• Entender a “filosofia” da Orientação a Objetos;

• Conceitos básicos que envolvem a Orientação a Objetos.

Teoria Prática

Teoria

Orientação a Objetos

Introdução Aplicações

Estruturas Herança Modificadores de Acesso

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.

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.

Teoria

Orientação a Objetos Estruturas

Classe Objeto Métodos Outros

Herança Modificadores de Acesso

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}

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

Teoria

Orientação a Objetos Estruturas

Classe Objeto Método

Construtor Propriedade

Outros

Herança Modificadores de Acesso

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}

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

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;

Teoria

Orientação a Objetos Estruturas

Classe Objeto Método Outros

Herança Modificadores de Acesso

19

Outros

• Namespace;• Atributos;• Delegates;• Reflection;• Constraints.

Teoria

Orientação a Objetos Estruturas Herança

Sobrecarga

Modificadores de Acesso

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;

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;

Teoria

Orientação a Objetos Estruturas Herança Modificadores

de Acesso

Principais Outros

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.

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.

26

Modificadores

– Override:• Quando herdamos de uma superclasse e queremos re-

implementar os métodos daquela, utilizamos o modificador override;

27

Outros

– Const;– Extern;– Event;– Abstract;– Partial;– Readonly;– Unsafe;– Virtual;– Volatile.

Teoria Prática

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.

30

Agradecimentos

public class palestra{

public void fim(){

Console.WriteLine ( “Obrigado!\n” );}

}