We adapt the object-oriented software engineering design methodology for software objects to engineering reusable learning objects. Our approach extends design principles for reusable learning objects. The resulting learning object class is a template from which individualised learning objects can be dynamically created for, or by, students. The properties of these classes refine learning object definitions and design guidelines. We adapt software object levels of cohesion to learning object classes. We demonstrate reusability increases when learning object lessons are built from learning objects, like maintainable software systems are built from software objects. We identify facilities for learning management systems to support object-oriented learning object lessons that are less predetermined in sequencing activities for each student. Our overall approach to the design of learning object lessons is independent of, and complementary to, instructional design theory underlying the learning object design process, and metadata standards adopted by the IEEE for learning object packaging.