Clase
Un plano o plantilla definidos por el usuario para crear objetos, especificando sus datos (atributos) y comportamientos (métodos).
Una clase es un concepto fundamental en la programación orientada a objetos (POO). Actúa como un plano arquitectónico para crear objetos (instancias).
Componentes de una Clase:
- Atributos (Campos/Propiedades): Datos que almacenará el objeto (ej. nombre, edad).
- Métodos (Funciones): Acciones que el objeto puede realizar (ej. ladrar(), calcularSalario()).
- Constructor: Método especial para inicializar nuevos objetos.
Relación Clase-Objeto:
Si Coche es la clase, entonces miToyotaRojo es un objeto (instancia) de esa clase.
graph LR
Center["Clase"]:::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;
🧒 Explícalo como si tuviera 5 años
Una clase es como un plano de arquitectura para una casa. Te dice cuántas habitaciones habrá y dónde van las ventanas. Pero no puedes vivir en el plano. Tienes que construir la casa real (el objeto) basándote en el plano. Puedes construir muchas casas (objetos) diferentes a partir del mismo plano (clase).
🤓 Expert Deep Dive
Las clases definen el polimorfismo, la herencia y la encapsulación. Las clases abstractas no se pueden instanciar y sirven como bases para subclases. Las interfaces (protocolos en Swift) definen contratos sin implementación. Las metaclases (en Python/Smalltalk) son clases que crean clases. Los miembros estáticos (Static) pertenecen a la clase en sí, no a las instancias.