Classe
Um projeto ou modelo definido pelo usuário para criar objetos, especificando seus dados (atributos) e comportamentos (métodos).
Uma classe é um conceito fundamental na programação orientada a objetos (POO). Ela atua como um projeto arquitetônico para criar objetos (instâncias).
Componentes de uma Classe:
- Atributos (Campos/Propriedades): Dados que o objeto armazenará (ex: nome, idade).
- Métodos (Funções): Ações que o objeto pode realizar (ex: latir(), calcularSalario()).
- Construtor: Método especial para inicializar novos objetos.
Relação Classe-Objeto:
Se Carro é a classe, então meuToyotaVermelho é um objeto (instância) dessa classe.
graph LR
Center["Classe"]:::main
Pre_object_oriented_programming["object-oriented-programming"]:::pre --> Center
click Pre_object_oriented_programming "/terms/object-oriented-programming"
Rel_object["object"]:::related -.-> Center
click Rel_object "/terms/object"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explique como se eu tivesse 5 anos
Uma classe é como uma planta de uma casa. Ela diz quantos quartos haverá e onde vão as janelas. Mas você não pode morar na planta. Você tem que construir a casa real (o objeto) com base na planta. Você pode construir muitas casas diferentes (objetos) a partir da mesma planta (classe).
🤓 Expert Deep Dive
Classes definem polimorfismo, herança e encapsulamento. Classes abstratas não podem ser instanciadas e servem como base para subclasses. Interfaces definem contratos sem implementação. Metaclasses (em Python/Smalltalk) são classes que criam classes. Membros estáticos pertencem à própria classe, não às instâncias.