For Project 9, we are revisiting the Contacts program, but this time with a twist. We will explore how to build it using Object-Oriented Programming (OOP), a powerful programming paradigm that allows for more organised, modular, and scalable code design. By comparing the new version with previous iterations, you'll witness firsthand the benefits of using OOP in software development.
Fundamental OOP Concepts:
Understand and apply the basic principles of Object-Oriented Programming, such as classes, objects, inheritance, and encapsulation.
Practical Application of OOP:
Through the construction of a contact management system, learn how to structure and implement features using classes and objects.
Enhanced Code Maintenance:
Discover how OOP can make your code more maintainable and adaptable to changes over time.
Advanced Programming Techniques:
Explore sophisticated OOP features like class methods, instance methods, and special methods (__init__, __str__).
Link to Project 9 - Contacts (OOP)
The four labs below will guide you through the completion of this project, each building on the knowledge gained in the previous one:
Lab 1 - Paradigms
Understand the difference between procedural and object-oriented programming paradigms.
Get introduced to the core concepts of OOP, setting the foundation for the upcoming labs.
Create the Contact class with essential attributes and learn how classes serve as blueprints for objects.
Understand the importance of constructors (__init__) and how to encapsulate data within a class.
Enhance the Contact class with methods that manipulate the data, providing dynamic interactions with the object's attributes.
Implement and use class methods and instance methods to understand their roles and differences.
Understand how to use methods to manage contact data, including adding, updating, and removing contacts.
Explore how to organise a software system using multiple classes to separate concerns, enhancing the program's clarity, maintainability, and scalability. Learn to design interactions between classes like Contact and ContactManager to build a cohesive application.