quarta-feira, 15 de junho de 2016

Compêndio BP 2: Programação Orientada a Objetos

Programação Orientada a Objetos


Desde a sua primeira versão, a Unreal Engine foi baseada nos princípios da Programação Orientada a Objetos. Um objeto contém dados que são representados por suas variáveis e também possui comportamentos que são representados pelas Ações. Diversos objetos interagem entre si para cumprir o objetivo de um programa.

Classes x Objetos

Uma classe é a definição dos dados e comportamentos que serão usados por um determinado tipo de objeto. Um Blueprint representa uma classe:


Um objeto é uma instância de uma classe. Por exemplo, existe apenas uma classe "Actor" mas um nível possui diversos atores. Cada um desses atores é uma instância da classe "Actor".

Encapsulamento:

Encapsulamento consiste em esconder a complexidade de uma classe. Para isso, cada classe deve ser o mais independente possível, evitando a interação com muitas classes. Deve ficar disponível para outras classes apenas os dados e funções realmente necessárias para o uso desta classe, facilitando assim o seu entendimento. 

Como exemplo, quando é criada uma função no Blueprint, pode ser especificado o nível de acesso a esta função. Private significa que somente a própria classe do Blueprint tem acesso. Em Protected a função pode ser acessada nas subclasses. Em Public qualquer outra classe pode chamar a função. 


Herança


Quando um novo Blueprint é criado, é preciso definir qual é a classe Pai. Todas as variáveis e Ações da classe Pai farão parte da classe filha, que também é conhecida como subclasse. Este conceito é chamado de Herança. A herança também é usada na definição do tipo de um objeto, pois o objeto acumula todos os tipos relacionados a classe pai. 

Por exemplo, a classe "Pawn" é uma subclasse da classe "Actor". Se for criado um Blueprint usando "Pawn" como classe pai, pode ser dito que este novo Blueprint é do tipo "Pawn" e também é do tipo "Actor".


Na aba "MyBlueprint" é possível visualizar as variáveis que foram herdadas da classe pai. Clique no ícone do olho e marque a opção "Show Inherited Variables".




Sumário