Smalltalk est un langage purement à objets à objets.
Chaque objet a un numéro (une identité) distinct dans le système. Ce qui différencie deux objets, c'est leur identité. Un objet sert à stocker et accéder à des informations propres et à envoyer ou répondre à des messages. Un objet a un état et un comportement . L'état est l'ensemble des valeurs que détient l'objet. Le comportement est l'ensemble des opérations (procédures ou fonctions), appelées méthodes que l'objet peut réaliser. Par exemple, prenons un point p1 = (5,6) défini par ses coordonnées cartésiennes. L'état est décrit par les deux coordonnées 5 et 6 dans le plan. Le comportement est déplacer, distance, etc. On dit qu'un objet encapsule des données (l'état) et des traitements sur ces données (le comportement) au sein d'une même entité.
La classe regroupe les objets ayant même structure (même forme d'état) et même comportement. Par exemple, notre point p1 est défini dans une classe Point. La structure est définie par un ensemble de variables d'instances . Par exemple, la structure du point p1 = (5,6) est formée de deux variables x et y. Le comportement est décrit par un ensemble de méthodes. Une méthode est une abstraction procédurale (procédure, fonction) définie par un profil et un corps . Le profil comprend un nom de méthode, appelé sélecteur de la méthode et des noms de variables en paramètres. Syntaxiquement, une méthode se présente comme suit :
selecteur et nom des arguments "commentaires décrivant la méthode" | noms de variables temporaires | instructions
Chaque objet détient les valeurs de ses variables d'instances mais son comportement est situé au niveau de sa classe. L'objet est relié à sa classe par la relation d'instanciation Nous avons donc shématiquement l'implantation suivante :
instanceRelation d'instanciation du point p1
Le point p1 a pour coordonnées x = 5 et y = 6. Ses méthodes sont regroupées dans la classe Point avec qui il est relié par une relation d'instanciation. L'état d'un objet est alors défini par la valeur de ses variables d'instance. C'est ce qui permet de comparer deux objets d'une même classe. En fait, chaque objet est unique dans le système : l'objet possède une identité .
La classe représente à la fois l'ensemble de ses instances et un modèle des instances. Dans le comportement on distingue les méthodes applicables aux objets, ce sont les méthodes d'instance , des méthodes applicables à la classe elle-même, appelées méthodes de classe . Les méthodes de classe servent notamment à créer les objets de la classe. On dit qu'un objet est instancié par la classe. Les termes instance et objet sont synonymes. Une classe qui n'a pas de méthode d'instanciation est dite classe abstraite . De même, une méthode dont la sémantique n'est pas définie est dite méthode abstraite .