Ajude nosso projeto a se manter online.

O que são Classes e Objetos em C++

 Neste tutorial de nosso curso de C++, vamos aprender de uma maneira bem coloquial e simples, o que são classes e objetos, a base da programação orientada a objetos.

O que é uma Classe

Classe nada mais é que uma planta, um molde, um diagrama.
Por exemplo, vamos imaginar uma Classe de um carro.

Essa classe vai descrever todos os detalhes desse carro: qual seu tamanho, número de portas, potência do motor, se é manual ou automático, se tem teto solar ou não, seus utilitários etc e etc.

É basicamente isso, é uma 'forma', que explica como são os...objetos.
Pra fazer um carro, precisamos dos detalhes da Classe carro para criar um carro. Esse carro vai ser um objeto.
Sim, pra explicar classe, temos que falar de objeto...

O que é um Objeto

...e pra falar de Objeto, precisamos falar de Classe. Não dá pra separar nem explicar bem uma das duas coisas, fica algo 'vago', e odeio essas explicações técnicas e vagas.

Tudo que você conhece é um objeto. Você é um objeto, você mora em um objeto, você come objetos, se locomove em objetos, está acessando esta página/apostila através de um objeto, aliás, esse curso é um Objeto.

Tudo é um objeto.

Entenda objeto como as coisas reais, do dia-a-dia, que existem de fato. E classe, como algo abstrato.

Classe e seus Objetos

Uma boa maneira de explicar algo, é através de exemplos reais. Então vamos lá.

Vamos supor que você concluiu o curso C++ Progressivo e virou um baita programador C++, com um excelente salário, e decidiu comprar um carro.

Você não vai chegar na concessionária e falar: "Ei, moço, quero um carro".
E o vendedor não vai falar: "Ok, aqui está um carro".
Nem você vai responder: "Obrigado, agora tenho um carro"

Quando você vai comprar um carro, você vai querer um Gol, um Uno, um Corolla ou uma BMW (caso seja programador C++). Ou seja, você vai comprar algo específico. Esse carro específico é um objeto. Um objeto da classe Carro.

A classe Carro vai dizer: "Esses objetos tem x portas, motor tal, câmbio, potência tal, cor tal...", ou seja, as características comuns que todos carros tem. Todos os carros tem portas e motor, por exemplo.

Um fusquinha tem duas portas e motor fraquinho. Seu Audi tem 4 portas e uma baita potência. Mas ambos tem determinado número de portas e um valor exato de potência.

Ou seja, um Fusca, um Palio, uma Mercedes...são todos objetos da classe Carro.
Captou?

Classes e Objetos em C++


Atributos e Funções de Classes e Objetos

Vamos para mais um exemplo. Você não conhece e nem lida com um 'humano'. Você lida com seu pai, com sua mãe, com seus amigos...ou seja, com humanos 'específicos'.

Vamos criar a classe Human. Quais as características de um humano? Ué, ele tem nome, idade, altura, peso, coração, pulmão etc etc.

Chamamos esses detalhes de atributos, seus detalhes, suas informações.

Essa classe também vai 'fazer' algumas coisas, como: respirar, bater o coração, andar, dormir...ou seja, a classe Human, além de ter características (valores, números), também vai ter algumas ações...essas ações são funções. 

Funções específicas que só existem na classe Human. Afinal, não tem uma função Respirar() na classe Car, nem tem uma função PassarMarcha() na classe Human.

Ou seja, cada Classe tem suas características (atributos) e ações específicas que ocorrem lá (funções). Isso que define uma classe: atributos e funções.

O bacana da programação orientada a objetos, é que as funções do Car só podem atuar nos objetos do tipo Car, e as ações da classe Human só vão poder atuar em cima de objetos da classe Human.

Instanciar (criar) Objetos a partir de uma Classe

Quando você vai criar algo, esse algo foi criado a partir de uma classe. Ou seja, dizemos que o objeto foi instanciado a partir de uma classe.

Por exemplo, vamos supor que você foi contratado por uma empresa pra trabalhar no setor de RH. De início, você vai criar uma classe chamada Funcionario.

Quais as características de um Funcionario ? Ué, ele tem nome, cargo, salário, número de identificação...
Quando alguém novo for contratado, você precisa criar um objeto específico daquele novo funcionário. Dizemos que você vai instanciar um objeto da classe Funcionario.

Esse objeto tem nome "Francisco Moreira", idade (32), salário (R$ 10.000,00 -  afinal é um programador C++), número de identificação (2112)...

Ou seja, objetos são trecos reais, baseados em trecos abstratos (classes).

A partir do próximo tutorial, vamos aprender de verdade como programar classes, como instanciar objetos, como definir suas características e ações.

Nenhum comentário:

Postar um comentário