Learnings from OOP

I did a course on Object Oriented Programming last semester. The course introduced me to the programming language Java and basic software design principles. I am grateful to my teacher, Dr. Avinash Gautam, for teaching me this course beautifully. Some of the most important concepts which he taught include:

  • Becoming a Oracle Certified Java Programmer(OCJP)
  • Book: Elements of reusable software components by the Gang of Four
  • Four Pillars of OOP–>
    • Inheritance
    • Encapsulation
    • Polymorphism
    • Abstraction
  • Use of GDB, Valgrind, Splint
  • Void pointers in C- can be typecast to a particular pointer type and used
  • Callback functions- Pointers to functions- Polymorphism in C
  • Study Java as a city of people doing jobs(objects, methods)
  • Open Closed Principle- Open for extension, closed for modification
  • POJO- Java objects of classes without logic
  • Function Pointers- int (*g) (int x, int y)
  • Callback pointers
  • Jump pointers
  • Smart pointers