Object Oriented Programming - Encapsulation and Abstraction- Folder.Programming Basics and Software Design- Teaching Computer Science: Section 1
Abstraction/Information Hiding
Abstraction, or "Information Hiding," is a term associated with Encapsulation. Through the process of Abstraction, a programmer hides all but the relevant data about and interaction with an object, in order to reduce complexity and increase efficiency, especially when improvements or modifications need to be made from time to time.
Encapsulation
Encapsulation is one of the three central principles (along with Inheritance and Polymorphism) of Object Oriented Programming. Encapsulation incorporates related data items and processes into a class definition, including instance variables, constructors, accessor and modifier (mutator) methods.
Functional Programming
Functional programming, as opposed to Imperative programming, is a pure functional approach to problem solving. Functional programming is a form of declarative programming. Languages that support this style of programming include Scheme, Haskell, LISP, Racket, and F#.
Imperative (Procedural) Programming
Imperative, or Procedural, programming is a paradigm in which a developer writes code that describes in exacting detail the steps that the computer must take to accomplish the goal. Most of the mainstream programming languages, such as C++, Java, and Python, support procedural programming.
Object-Oriented Programming
Object-Oriented Programming (OOP) is a programming language model using objects that contain data as the main focus, with actions and processes directly associated with the data.
Object
This is an instance of a Class created during program execution that encapsulates data and related actions or processes, often called methods.
Class
This is the definition of an Object, describing the type of data owned by the object, as well as methods that act on that data.