This lab reinforces understanding of basic object oriented programming concepts (objects, classes and subclasses, methods) and their expression in Java. It also provides practice using non-object aspects of Java (loops, conditionals, etc.). This lab fosters problem-solving and code reusability skills, preparing students for software development in diverse domains. Through hands-on exercises and projects, students gain proficiency in designing and implementing software using principles like encapsulation, inheritance, and polymorphism.