orientação a objetos erick luis moraes de sousa [email protected]
TRANSCRIPT
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” );}
}