Qual a diferença entre uma classe e um objeto?

Uma classe e um objeto são conceitos fundamentais na programação orientada a objetos.

Uma classe é uma estrutura que define um conjunto de atributos e métodos que um objeto desse tipo pode ter. Ela é como um modelo ou um projeto que descreve as características e comportamentos dos objetos de um determinado tipo. Por exemplo, em uma classe chamada “Carro”, podemos definir atributos como cor, marca e modelo, e métodos como acelerar e frear.

Por outro lado, um objeto é uma instância particular de uma classe. É uma entidade que pode ser criada a partir de uma classe específica. Por exemplo, se tivermos a classe “Carro”, podemos criar objetos distintos como “MeuCarro” ou “CarroDoAmigo”. Cada objeto terá seus próprios valores para os atributos, mesmo que a estrutura (classe) seja a mesma.

Um exemplo prático para entender a diferença seria pensar em uma classe “Pessoa”. A classe descreveria como uma pessoa deve ser, com seus atributos, como nome, idade e altura, e métodos, como comer e dormir. Agora, ao instanciar um objeto “João” a partir dessa classe, teríamos um objeto com um nome específico, uma idade específica e uma altura específica, e poderíamos chamar os métodos para que ele coma ou durma. Outro objeto “Maria”, também criado a partir da mesma classe, teria atributos e comportamentos distintos.