orientação a objetos erick luis moraes de sousa [email protected]

30

Upload: internet

Post on 22-Apr-2015

108 views

Category:

Documents


1 download

TRANSCRIPT

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

Orientação a Objetos

Erick Luis Moraes de [email protected]

http://forum.gamux.com.br

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

REVISÃO

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

-

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

OBJETIVOS

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

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

Teoria Prática

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

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

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

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

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

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

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

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

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

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

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

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

19

Outros

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

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

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

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

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

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

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

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

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

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

Teoria Prática

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

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

30

Agradecimentos

public class palestra{

public void fim(){

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

}