Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods.
A feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated (objects have a notion of "this" or "self"). In OOP, computer programs are designed by making them out of objects that interact with one another. There is significant diversity of OOP languages, but the most popular ones are class-based, meaning that objects are instances of classes, which typically also determine their type.
A video to get you started
Please wait for this video to load. In case it doesn't, the direct URL is here: https://www.youtube.com/watch?v=POrU7vcKB_k
Object-oriented programming is another way of organizing the same properties, methods (functions), and events you work with in procedural languages.
- oop organizes projects into consistent and manageable pieces
- procedural programs are linear and can become hard to manage when programs gets bigger (scale up)
- oop introduces structure intended to avoid scaling and maintenance problems
- oop is abstract. Data and program structures are defined using a representation of meaning, while hiding the implementation itself. This allows for the use of human readable terminology to be used as part of the software.
The Unified Modelling Language (UML) is a general-purpose, developmental, modelling language in the field of software engineering, that is intended to provide a standard way to visualize the design of a system.
These standards come from the IB.
- Outline the general nature of an object
- Distinguish between an object (definition, template or class) and instantiation
- Construct unified modelling language (UML) diagrams to represent object designs
- Interpret UML diagrams
- Describe the process of decomposition into several related objects
- Describe the relationships between objects for a given problem
- Outline the need to reduce dependencies between objects in a given problem
- Construct related objects for a given problem
- Explain the need for different data types to represent data items
- Describe how data items can be passed to and from actions as parameters
- Define the term encapsulation
- Define the term inheritance
- Define the term polymorphism
- Explain the advantages of encapsulation
- Explain the advantages of inheritance
- Explain the advantages of polymorphism
- Describe the advantages of libraries of objects
- Describe the disadvantages of OOP
- Discuss the use of programming teams
- Explain the advantages of modularity in program development
- Define the terms: class, identifier, primitive, instance variable, parameter variable, local variable
- Define the terms: method, accessor, mutator, constructor, signature, return value
- Define the terms: private, protected, public, extends, static
- Describe the uses of the primitive data types and the reference class string
- Construct code to implement assessment statements
- Construct code examples related to selection statements
- Construct code examples related to repetition statements
- Construct code examples related to static arrays
- Discuss the features of modern programming languages that enable internationalization
- Discuss the ethical and moral obligations of programmers
- IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.