Classes - Unisinos

professor.unisinos.br

Classes - Unisinos

Classes

Prof. MSc. João Ricardo Bittencourt

Update: 28 Fev. 2013

joaorb@unisinos.br

Algoritmos e Estrutura de Dados em C++

Jogos Digitais

UNISINOS


Sumário

1. Contexto

2. Conceitos

3. Encapsulamento

4. Visibilidade

5. Herança Simples

UNISINOS - João Ricardo Bittencourt


Contexto

Paradigma orientado a objetos

Perceber o mundo como um conjunto de

objetos que trocam mensagens entre si

Deve-se trocar a forma de projetar as

soluções para um problema computacional

O objetivo é facilitar o desenvolvimento de

software e aumentar a reusabilidade

Aproximar o desenvolvimento de software ao

processo de desenvolvimento de hardware

UNISINOS - João Ricardo Bittencourt


Contexto

UNISINOS - João Ricardo Bittencourt


Contexto

UNISINOS - João Ricardo Bittencourt


Contexto

Let's go to play

UNISINOS - João Ricardo Bittencourt


Contexto

Modelar um programa como um conjunto de

objetos que trocam mensagens entre si.

UNISINOS - João Ricardo Bittencourt


Contexto

O que tudo isto tem haver com games?

Aumentar a produtividade, a qualidade, a

reusabilidade

Redução de custos, respeitar prazos

Criação/projeto de motores de jogos

Cuidado!

Relação diretamente proporcional entre:

• Generalização

• Desempenho

Maior generalização, menor desempenho

UNISINOS - João Ricardo Bittencourt


Contexto

Vamos considerar:

Como pode ser

caracterizado? Quais

suas características?

O que este mago pode

fazer?

UNISINOS - João Ricardo Bittencourt


Contexto

Vamos considerar:

Nome

Poder

Idade

Escola de Magia

Andar

Falar

Invocar Magia

Criar item mágico

Aprender magia

UNISINOS - João Ricardo Bittencourt


Contexto

Isto pode representar uma classe de personagens

Nome

Poder

Idade

Escola de Magia

Andar

Falar

Invocar Magia

Criar item mágico

Aprender magia

UNISINOS - João Ricardo Bittencourt


Contexto

Uma classe caracteriza uma coleção de

objetos que possuem os mesmos atributos e

comportamentos

Um objeto é uma instância concreta da classe

Classe: Mago

Gandalf, Elminster, Merlin, Presto são objetos

da classe Mago

• Todos tem os mesmos atributos

• Todos tem o mesmo comportamento

UNISINOS - João Ricardo Bittencourt


Encapsulamento

“Estes dados são meus! Ninguém pode

mexer neles!!”

Cada classe oferece um conjunto de serviços

requisitados através de métodos

Deve-se evitar corromper os dados. Só a

classe tem acesso a eles.

Arquitetura cliente-servidor

• Metáforas: acesso à Internet, Steam, uma

lanchonete,...

UNISINOS - João Ricardo Bittencourt


Encapsulamento

“Estes dados são meus! Ninguém pode

mexer neles!!”

No caso do Mago:

• Qual sua idade?

• Qual seu nome?

• Qual seu poder?

• Qual sua escola de

magia?

UNISINOS - João Ricardo Bittencourt


Visibilidade

Público (public)

São os serviços oferecidos aos demais objetos

Representa a interface da classe

Os atributos não devem ser públicos!

Privado (private)

Os dados usados pela classe para oferecer

seus serviços

Alguns comportamentos podem ser privados

(auxiliam outros comportamentos)

UNISINOS - João Ricardo Bittencourt


Encapsulamento

Criação de objetos

Cria um objeto de forma consistente

Evitar problemas de inicializações

Construtor padrão (default)

Destruição de objetos

Faz uma “limpeza” antes da memória ser

liberada

Executados automaticamente

Só pode ter um destruidor

UNISINOS - João Ricardo Bittencourt


Herança Simples

Druida é um sacerdote

céltico

Forte ligação com os

animais, plantas

Uso de uma magia

alquímica

Em suma

Um Druida é um tipo

de Mago

UNISINOS - João Ricardo Bittencourt


Herança Simples

Logo Mago é a classe base e Druida é uma

classe derivada.

Que pode:

Oferecer novos serviços

Herdar dados/serviços da classe base

Sobrescrever serviços (diferenciar) serviços

oferecidos pela classe base (polimorfismo)

Usar construtores/destrutores da base

Acessar alguns dados da classe base através de

uma visibilidade protegida (protected)

• Somente a classe base e derivadas podem

acessar

UNISINOS - João Ricardo Bittencourt


Herança Simples

UNISINOS - João Ricardo Bittencourt


Herança Simples

Nem todas as relações entre classes são do tipo

“é um”.

Considere: magia e item mágico

Magia não é um mago

Item mágico não é um mago

Entretanto

Mago conhece magia

Mago usa item mágico

Mago cria item mágico

São relações de composição, agregação ou uso

UNISINOS - João Ricardo Bittencourt

More magazines by this user
Similar magazines