AULA 5 - Programação II - Graduação
Modificado de [C++ como programar, Deitel & Deitel]
Programação orientada a objetos
A programação orientada a objetos (POO) encapsula dados (atributos) e funções (métodos) em pacotes chamados classes.
Uma classe é como a planta de uma casa. A partir da planta, o construtor pode construir uma casa. A partir de uma classe, o programador pode construir um objeto.
Uma planta pode ser reutilizada muitas vezes para se fazer muitas casas. Uma classe pode ser reutilizada muitas vezes para se criar muitos objetos.
As classes têm a propriedade de ocultação de informações. Isso significa que, embora os objetos da classe possam saber como comunicar-se uns com os outros, através de interfaces bem-definidas, normalmente não é permitido às classes saber como as outras classes são implementadas. Os detalhes da implementação são escondidos dentro das próprias classes.
Em C e outras linguagem procedurais, a programação tende a ser orientada a funções, enquanto que em C++ a programação é orientada a objetos.
Implementando um tipo abstrato Tempo com uma class
Como exemplo, vamos ilustrar o processo de implementação de um tipo abstrato relacionado com tempo-relógio, e atributos e ações que lhe digam respeito.
Os campos membros dos objetos são chamados de atributos, ou membros de dados e as ações são chamadas de métodos ou funções-membro.
Tipos contendo membros de dados e funções membro são definidos em C++ utilizando-se a palavra-chave class.
Ex:
class Tempo {
public:
void imprimeMilitar();
void imprimePadrao();
private:
int hora; //0-23
int minuto; //0-59
int segundo; //0-59
};
A definição da classe começa com a palavra reservada class. O nome da classe, Tempo, segue a palavra-chave. O corpo da classe é delimitado pelas chaves ({ e }) e termina com o ponto e vírgula (;). Esta classe possui dois métodos PÚBLICOS (public), imprimeMilitar() e imprimePadrao(), e três atributos PRIVADOS (private), hora, minuto e segundo.