Classe (Programmation)

Modèle de code pour créer des objets, définissant leur état (variables) et leur comportement (méthodes).

Une classe agit comme un type de données personnalisé. Les classes soutiennent les trois piliers de la POO : l'Encapsulation (cacher l'état interne avec private/public), l'Héritage (créer une sous-classe à partir d'une classe parente) et le Polymorphisme.

        graph LR
  Center["Classe (Programmation)"]:::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-moi comme si j'avais 5 ans

Vois une classe comme un emporte-pièce et l'objet comme le biscuit. L'emporte-pièce définit la forme. Tu peux faire des centaines de biscuits avec. Ils ont tous la même forme, mais l'un peut avoir des pépites de chocolat et l'autre du glaçage (leur état unique).

🤓 Expert Deep Dive

Lors de l'instanciation, la mémoire est allouée sur le tas (heap). Les méthodes ne sont pas dupliquées par objet ; le compilateur passe implicitement une référence (this ou self) à la méthode en mémoire. Le polymorphisme est souvent implémenté via des tables de méthodes virtuelles (vtables).

❓ Questions fréquentes

What is the difference between a class and an object?

A class is the blueprint or definition (the idea). An object is the actual instance created from that blueprint (the physical thing in memory). For example, 'House' is a class, but the specific house you live in is the object.

What is a constructor in a class?

A constructor is a special method inside a class that is automatically called when a new object is created. It is used to set the initial values (state) of the object.

Do all programming languages use classes?

No. While languages like Java, C++, and Python rely heavily on classes (Object-Oriented Programming), other languages use different paradigms. For example, C uses procedural programming, Haskell uses functional programming, and JavaScript originally used prototype-based inheritance.

🔗 Termes associés

📚 Sources