subsections:


Object-oriented programming

  • high tech synonym for good

Styles of programming

  • A language supports a style of programming if it provides facilities that make it convenient (easy, safe and efficient) to use that style

  • compile/runtime checks
  • clean interpretation/ orthogonal / efficient / minimal

slide: Styles of programming


Procedural programming

  • procedures, use the optimal algorithms

Modules

  • hide the data, provide functional abstractions

Data abstraction

  • types, provide a sufficiently complete set of operations

Object-oriented -- organize your types

  • make commonality explicit by using inheritance

slide: Paradigms of programming



  while ( programming == art )  {
  
  	incr( pleasure );
  	decr( bugs );
  	incr( portability );
  	incr( maintainability );
  	incr( quality );
  	incr( salary );
  
  } // live happily ever after
  

slide: Programming as an art


Support for data abstraction

Encapsulation


slide: Data abstraction


Support for OOP

Inheritance


slide: Support for OOP