Certain kinds of coalgebra have proven useful in the modelling of features of object-oriented programming languages. The kind we consider has a non-empty set Y of states (which may be thought of as the possible realisations of some notion of object), and a set of method operations m: Y x I^m --> Y and attribute functions a: Y x I^a --> O^a, where $I^m$ and $I^a$ are sets of inputs and $O^a$ a set of outputs or observable values. A calculus of terms for these coalgebras is developed using variables and constants for members of input and output sets, symbols for methods and attributes, and a special state symbol $\sigma$ which may be thought of as a parameter denoting the ``current'' state. An observable equation $t_1\approx t_2$ has terms $t_1$ and $t_2$ taking observable values. The ultrafilter enlargement of a coalgebra A is defined as a new coalgebra whose states are certain ``rich'' ultrafilters on the state set of A. These ultrafilters are required to contain special sets of states defined by observable equations. It is shown that a class of coalgebras is definable by Boolean combinations of observable equations if and only if it is closed under disjoint unions, ultrafilter enlargements, and domains and images of coalgebraic morphisms (or equivalently, images of bisimulation relations). This may be viewed as a coalgebraic analogue of Birkhoff's characterisation of equationally definable classes of algebras by closure under homomorphic images, subalgebras, and direct products.