The document discusses key concepts in object-oriented programming including objects, classes, messages, and requirements for object-oriented languages. An object is a bundle of related variables and methods that can model real-world things. A class defines common variables and methods for objects of a certain kind. Objects communicate by sending messages to each other specifying a method name and parameters. For a language to be object-oriented, it must support encapsulation, inheritance, and dynamic binding.
The document discusses the key concepts of object-oriented programming (OOP) in C++, including objects, classes, abstraction, encapsulation, inheritance, polymorphism, overloading, and exception handling. Objects are instances of classes that contain data members and member functions. Classes define the blueprint for objects and allow data and functions to be bundled together. Abstraction hides unnecessary details and focuses on essential information. Encapsulation binds data and functions together within a class. Inheritance allows code reuse through deriving a new class from an existing class. Polymorphism and overloading allow functions to operate on different data types. Exception handling manages errors at runtime.
This document provides an introduction to object-oriented programming (OOP) concepts. It defines OOP as a design philosophy that groups everything as self-sustainable objects. The key OOP concepts discussed are objects, classes, encapsulation, abstraction, inheritance, polymorphism, method overloading, method overriding, and access modifiers. Objects are instances of classes that can perform related activities, while classes are blueprints that describe objects. Encapsulation hides implementation details within classes, and abstraction focuses on what objects are rather than how they are implemented.
Object oriented programming (OOP) addresses limitations of procedural programming by dividing programs into objects that encapsulate both data and behaviors. OOP supports features like inheritance, polymorphism, and abstraction. Inheritance allows new classes to inherit attributes and behaviors from parent classes, polymorphism allows the same message to be interpreted differently depending on the object receiving it, and abstraction focuses on essential characteristics without implementation details. These features help make programs more modular, reusable, and maintainable.
Object oriented programming is an approach that partitions memory into areas for data and functions that can be used as templates to create copies of modules on demand. The document discusses basic object oriented programming concepts like classes, objects, inheritance, encapsulation, polymorphism and dynamic binding. It provides examples of classes like Dogs and Birds and how inheritance and polymorphism work. Popular object oriented programming languages are listed as C++, C#, Java, PHP, VB, and VB.net and applications are given as real-time systems, simulations, databases, AI systems and more.
To make this comparison we need to first consider the problem that both approaches help us to solve. When programming any system you are essentially dealing with data and the code that changes that data. These two fundamental aspects of programming are handled quite differently in procedural systems compared with object oriented systems, and these differences require different strategies in how we think about writing code.
The document discusses various programming paradigms including monolithic, procedural, structured, and object-oriented programming. It provides details on each paradigm such as their characteristics, advantages, and disadvantages. Object-oriented programming is then explained in more depth covering key concepts like classes, objects, methods, inheritance, polymorphism, and encapsulation.
The document discusses object-oriented programming languages like C++, Smalltalk, and Java. It covers the basic concepts of object-oriented programming including objects, classes, encapsulation, inheritance, and polymorphism. Key points about each language are provided, such as C++ being an extension of C and introducing classes, Smalltalk being one of the earliest languages to support OOP, and Java combining elements of C++ and Smalltalk. Sample code in each language is also shown.
This document defines object-oriented programming and compares it to structured programming. It outlines the main principles of OOP including encapsulation, abstraction, inheritance, and polymorphism. Encapsulation binds code and data together for security and consistency. Abstraction hides implementation details and provides functionality. Inheritance allows classes to acquire properties from other classes in a hierarchy. Polymorphism enables different types to perform the same methods.
This presentation provides an overview of object-oriented programming (OOP). It discusses key OOP concepts including objects, classes, encapsulation, inheritance, polymorphism, and message passing. Objects are instances of classes that have both data and behaviors. Classes define common properties and methods for objects. Encapsulation binds together an object's data and methods, while inheritance establishes a hierarchy where derived classes inherit from base classes. Polymorphism allows the same message to be interpreted differently, and message passing facilitates communication between objects.
Concept of OOPS with real life examplesNeha Sharma
It includes Programming paradigm and concepts of Object Oriented programming (Features with real life examples) with sample code of class and objects.
For better understanding, you can watch video and subscribe my channel:
For Hindi: https://youtu.be/gsESptJbwno
For English: https://youtu.be/TbmyQePGh4g
This document discusses advance object-oriented programming concepts. It covers procedural programming vs object-oriented programming, features of OOP like classes, objects, inheritance and polymorphism. It also discusses OOP design principles like single responsibility, open-closed, Liskov substitution, dependency inversion and interface segregation principles. Examples are provided to explain concepts like inheritance, polymorphism, abstraction and interfaces. The document provides a comprehensive overview of key OOP concepts and design principles.
Introduction to object oriented languagefarhan amjad
This document discusses object-oriented programming (OOP) and its advantages over procedural programming. It defines some key OOP concepts like objects, classes, encapsulation, and inheritance. It explains that in OOP, programs are designed as collections of these discrete objects that combine data and behaviors. This reduces complexity and promotes reusability, flexibility, and maintainability. OOP also gives data more importance and provides mechanisms to hide data that procedural languages lack.
Stored procedures and functions are named PL/SQL blocks that are stored in a database. They improve performance by reducing network traffic and allowing shared memory usage. Stored procedures are created using the CREATE PROCEDURE statement and can accept parameters using modes like IN, OUT, and IN OUT. Stored functions are similar but return a value. Packages group related database objects like procedures, functions, types and provide modularity and information hiding.
This presentation deals with pure object oriented concepts and defines basic principles of OOP's like Encapsulation , polymorphism , Inheritance and Abstraction.
The document discusses encapsulation in object-oriented programming. It defines encapsulation as combining data and functions into a single unit called a class, with data only accessible through class functions. This provides secure and consistent results by hiding implementation details and restricting access. An example C++ program demonstrates encapsulation by defining a class with private data members that can only be accessed and modified through public member functions. The advantages of encapsulation include easier application maintenance, improved understandability, and enhanced security.
An overview of object oriented programming including the differences between OOP and the traditional structural approach, definitions of class and objects, and an easy coding example in C++. This presentation includes visual aids to make the concepts easier to understand.
Fundamentals of OOP (Object Oriented Programming)MD Sulaiman
The document discusses object-oriented programming concepts including objects, classes, message passing, abstraction, encapsulation, inheritance, polymorphism, and dynamic binding. It provides examples and definitions for each concept. It also covers basic class concepts like defining classes, creating objects, using constructors, and accessing instance variables and methods. The document appears to be teaching material for an introductory object-oriented programming course.
This document discusses various programming paradigms including procedural programming, object-based programming, and object-oriented programming. It provides details on key concepts of OOP like data abstraction, encapsulation, inheritance, and polymorphism. The document also lists advantages of OOP like reusability and ease of maintenance, as well as disadvantages like potential overgeneralization of classes.
Object oriented programming focuses on data and uses a bottom-up design approach, while procedural programming focuses on functions and uses a top-down design approach. Some key features of OOP include objects, classes, data abstraction, encapsulation, inheritance, polymorphism, and reusability. An object contains data fields and methods, and a class defines the blueprint for objects. Inheritance allows code reuse through derived classes extending existing base classes. Polymorphism allows the same function to operate on different types, while overloading gives the same operation different meanings based on context.
Object oriented programming is a modular approach to programming that treats data and functions that operate on that data as objects. The basic elements of OOP are objects, classes, and inheritance. Objects contain both data and functions that operate on that data. Classes are templates that define common properties and relationships between objects. Inheritance allows new classes to acquire properties of existing classes. OOP provides advantages like modularity, code reuse, and data abstraction.
introduction of Object oriented programmingRiturajJain8
Object oriented programming (OOP) represents problems using real-world objects and their interactions. This chapter introduces OOP concepts including classes, objects, abstraction, encapsulation, inheritance, and polymorphism. It contrasts OOP with structured programming, which organizes programs in a logical structure rather than representing real-world entities. The chapter defines key OOP terms and provides examples to illustrate abstraction, encapsulation, inheritance, and polymorphism.
This document provides information about a class on Object Oriented Programming (OOP) with C++ taught by Venkatadri.M, an Assistant Professor at the University of Petroleum and Energy Studies in Dehradun, India. The class covers the evolution of OOP, the history of C++, organizing data and functions in OOP, features of object oriented languages, and polymorphism. The instructor uses diagrams, animations and PowerPoint presentations to teach the concepts and address frequently asked questions from students.
The document discusses classes and objects in object-oriented programming. It defines what a class is, how classes are declared with public and private members, and how objects are instantiated from classes. It also describes defining member functions inside and outside of classes, and the use of static class members and friend functions.
This document discusses classes, objects, and methods in Java. It defines a class as a user-defined data type that contains fields and methods. Objects are instances of classes that allocate memory at runtime. Methods define behaviors for objects and are declared within classes. The document covers defining classes, creating objects, accessing members, constructors, method overloading and overriding, static members, passing objects as parameters, recursion, and visibility control.
This document provides an overview of basic object-oriented programming (OOP) concepts including objects, classes, inheritance, polymorphism, encapsulation, and data abstraction. It defines objects as entities with both data (characteristics) and behavior (operations). Classes are blueprints that are used to create objects. Inheritance allows objects to inherit properties from parent classes. Polymorphism allows code to take different forms. Encapsulation wraps data and functions into classes, hiding information. Data abstraction focuses on important descriptions without details.
The document presents an OOSE project on a kit issuance system created by group members Fazeel Ashraf, Ali Haider, and Zain Ul Islam. The system allows an administrator to issue kits to players, add and remove kits from the system, and search for or get information on single kits or all kits. Design patterns like Decorator, Factory, Iterator, Proxy, Prototype, Singleton, Facade, and Strategy were applied in developing the kit issuance system functionality of adding kits, searching kits, viewing single kit information, viewing all kit descriptions, and creating new kits.
Basic Concepts of Object Oriented Programming (OOP) explained in layman's terms. For having a better understanding of building blocks of OOPs Language. Explanantion of Class, Objects & Methods followed by explanation of Message Passing, Inheritance, Abstraction, Encapsulation, & Polymorphism with examples.
The document discusses object-oriented programming languages like C++, Smalltalk, and Java. It covers the basic concepts of object-oriented programming including objects, classes, encapsulation, inheritance, and polymorphism. Key points about each language are provided, such as C++ being an extension of C and introducing classes, Smalltalk being one of the earliest languages to support OOP, and Java combining elements of C++ and Smalltalk. Sample code in each language is also shown.
This document defines object-oriented programming and compares it to structured programming. It outlines the main principles of OOP including encapsulation, abstraction, inheritance, and polymorphism. Encapsulation binds code and data together for security and consistency. Abstraction hides implementation details and provides functionality. Inheritance allows classes to acquire properties from other classes in a hierarchy. Polymorphism enables different types to perform the same methods.
This presentation provides an overview of object-oriented programming (OOP). It discusses key OOP concepts including objects, classes, encapsulation, inheritance, polymorphism, and message passing. Objects are instances of classes that have both data and behaviors. Classes define common properties and methods for objects. Encapsulation binds together an object's data and methods, while inheritance establishes a hierarchy where derived classes inherit from base classes. Polymorphism allows the same message to be interpreted differently, and message passing facilitates communication between objects.
Concept of OOPS with real life examplesNeha Sharma
It includes Programming paradigm and concepts of Object Oriented programming (Features with real life examples) with sample code of class and objects.
For better understanding, you can watch video and subscribe my channel:
For Hindi: https://youtu.be/gsESptJbwno
For English: https://youtu.be/TbmyQePGh4g
This document discusses advance object-oriented programming concepts. It covers procedural programming vs object-oriented programming, features of OOP like classes, objects, inheritance and polymorphism. It also discusses OOP design principles like single responsibility, open-closed, Liskov substitution, dependency inversion and interface segregation principles. Examples are provided to explain concepts like inheritance, polymorphism, abstraction and interfaces. The document provides a comprehensive overview of key OOP concepts and design principles.
Introduction to object oriented languagefarhan amjad
This document discusses object-oriented programming (OOP) and its advantages over procedural programming. It defines some key OOP concepts like objects, classes, encapsulation, and inheritance. It explains that in OOP, programs are designed as collections of these discrete objects that combine data and behaviors. This reduces complexity and promotes reusability, flexibility, and maintainability. OOP also gives data more importance and provides mechanisms to hide data that procedural languages lack.
Stored procedures and functions are named PL/SQL blocks that are stored in a database. They improve performance by reducing network traffic and allowing shared memory usage. Stored procedures are created using the CREATE PROCEDURE statement and can accept parameters using modes like IN, OUT, and IN OUT. Stored functions are similar but return a value. Packages group related database objects like procedures, functions, types and provide modularity and information hiding.
This presentation deals with pure object oriented concepts and defines basic principles of OOP's like Encapsulation , polymorphism , Inheritance and Abstraction.
The document discusses encapsulation in object-oriented programming. It defines encapsulation as combining data and functions into a single unit called a class, with data only accessible through class functions. This provides secure and consistent results by hiding implementation details and restricting access. An example C++ program demonstrates encapsulation by defining a class with private data members that can only be accessed and modified through public member functions. The advantages of encapsulation include easier application maintenance, improved understandability, and enhanced security.
An overview of object oriented programming including the differences between OOP and the traditional structural approach, definitions of class and objects, and an easy coding example in C++. This presentation includes visual aids to make the concepts easier to understand.
Fundamentals of OOP (Object Oriented Programming)MD Sulaiman
The document discusses object-oriented programming concepts including objects, classes, message passing, abstraction, encapsulation, inheritance, polymorphism, and dynamic binding. It provides examples and definitions for each concept. It also covers basic class concepts like defining classes, creating objects, using constructors, and accessing instance variables and methods. The document appears to be teaching material for an introductory object-oriented programming course.
This document discusses various programming paradigms including procedural programming, object-based programming, and object-oriented programming. It provides details on key concepts of OOP like data abstraction, encapsulation, inheritance, and polymorphism. The document also lists advantages of OOP like reusability and ease of maintenance, as well as disadvantages like potential overgeneralization of classes.
Object oriented programming focuses on data and uses a bottom-up design approach, while procedural programming focuses on functions and uses a top-down design approach. Some key features of OOP include objects, classes, data abstraction, encapsulation, inheritance, polymorphism, and reusability. An object contains data fields and methods, and a class defines the blueprint for objects. Inheritance allows code reuse through derived classes extending existing base classes. Polymorphism allows the same function to operate on different types, while overloading gives the same operation different meanings based on context.
Object oriented programming is a modular approach to programming that treats data and functions that operate on that data as objects. The basic elements of OOP are objects, classes, and inheritance. Objects contain both data and functions that operate on that data. Classes are templates that define common properties and relationships between objects. Inheritance allows new classes to acquire properties of existing classes. OOP provides advantages like modularity, code reuse, and data abstraction.
introduction of Object oriented programmingRiturajJain8
Object oriented programming (OOP) represents problems using real-world objects and their interactions. This chapter introduces OOP concepts including classes, objects, abstraction, encapsulation, inheritance, and polymorphism. It contrasts OOP with structured programming, which organizes programs in a logical structure rather than representing real-world entities. The chapter defines key OOP terms and provides examples to illustrate abstraction, encapsulation, inheritance, and polymorphism.
This document provides information about a class on Object Oriented Programming (OOP) with C++ taught by Venkatadri.M, an Assistant Professor at the University of Petroleum and Energy Studies in Dehradun, India. The class covers the evolution of OOP, the history of C++, organizing data and functions in OOP, features of object oriented languages, and polymorphism. The instructor uses diagrams, animations and PowerPoint presentations to teach the concepts and address frequently asked questions from students.
The document discusses classes and objects in object-oriented programming. It defines what a class is, how classes are declared with public and private members, and how objects are instantiated from classes. It also describes defining member functions inside and outside of classes, and the use of static class members and friend functions.
This document discusses classes, objects, and methods in Java. It defines a class as a user-defined data type that contains fields and methods. Objects are instances of classes that allocate memory at runtime. Methods define behaviors for objects and are declared within classes. The document covers defining classes, creating objects, accessing members, constructors, method overloading and overriding, static members, passing objects as parameters, recursion, and visibility control.
This document provides an overview of basic object-oriented programming (OOP) concepts including objects, classes, inheritance, polymorphism, encapsulation, and data abstraction. It defines objects as entities with both data (characteristics) and behavior (operations). Classes are blueprints that are used to create objects. Inheritance allows objects to inherit properties from parent classes. Polymorphism allows code to take different forms. Encapsulation wraps data and functions into classes, hiding information. Data abstraction focuses on important descriptions without details.
The document presents an OOSE project on a kit issuance system created by group members Fazeel Ashraf, Ali Haider, and Zain Ul Islam. The system allows an administrator to issue kits to players, add and remove kits from the system, and search for or get information on single kits or all kits. Design patterns like Decorator, Factory, Iterator, Proxy, Prototype, Singleton, Facade, and Strategy were applied in developing the kit issuance system functionality of adding kits, searching kits, viewing single kit information, viewing all kit descriptions, and creating new kits.
Basic Concepts of Object Oriented Programming (OOP) explained in layman's terms. For having a better understanding of building blocks of OOPs Language. Explanantion of Class, Objects & Methods followed by explanation of Message Passing, Inheritance, Abstraction, Encapsulation, & Polymorphism with examples.
This document provides an introduction to object oriented programming concepts in Java for absolute beginners. It covers key concepts like classes, objects, abstraction, inheritance, interfaces, polymorphism, overriding, overloading and encapsulation. It includes examples and exercises to demonstrate each concept. The exercises involve creating classes for vehicles like Ferrari and Audi, making them inherit from an abstract Vehicle class, implementing interfaces, overriding and overloading methods. The goal is to help readers understand and apply OOP concepts in Java.
This document provides an overview of object-oriented programming concepts such as objects, classes, and messaging. It defines an object as having state represented by variables and behavior represented by methods. A class is described as a blueprint that defines common attributes and behaviors of objects. The document also explains how objects communicate by sending messages to each other to invoke methods.
The document discusses key concepts in object-oriented programming (OOP) including objects, classes, encapsulation, inheritance, polymorphism, and message passing. It provides examples of a simple class named "item" that includes variables and methods. It also discusses how objects are composed of data and functions, and how classes are used to organize data and functions through principles like private/public access and data abstraction.
Object oriented programming (oop) cs304 power point slides lecture 01Adil Kakakhel
this is the first lecture developed by virtual university of pakist about object oriented programming. very useful and a start from the very basics about OO modeling.
Basic concepts of object oriented programmingSachin Sharma
This document provides an overview of basic concepts in object-oriented programming including objects, classes, data abstraction, encapsulation, inheritance, polymorphism, binding, and message passing. Objects are run-time entities with state and behavior, while classes define the data and behavior for objects of a similar type. Encapsulation binds data and functions within a class, while inheritance allows new classes to acquire properties of existing classes. Polymorphism enables one function to perform different tasks. Binding determines how function calls are linked, and message passing allows objects to communicate by sending requests.
This document describes a bus tracking application for students. The application uses GPS to track the real-time location of buses and send bus locations to students when requested. It also generates predicted arrival times at stops. The application was developed using Eclipse, Android SDK, and integrates Google Maps. It has modules for location information, maps, and bus/route details stored in a MySQL database.
The document provides an overview for a new employee orientation. It introduces the new employee to their assignment, environment, and colleagues. It outlines the agenda for the orientation, including learning objectives around technology, procedures, policies, and benefits. It discusses acclimating to new work, including the technology learning curve and achieving mastery over time. It also presents a case study of another employee's experiences and lessons learned on their first day. Key takeaways are around defining challenges, setting realistic expectations of not achieving mastery immediately, and focusing on goals with mentorship support.
The document provides an overview of object-oriented concepts. It discusses that software development is increasingly relying on object-oriented paradigms due to benefits like improved modeling of real-world problems and reusability. Key concepts discussed include classes and objects, encapsulation, inheritance, polymorphism, and object composition. Various object-oriented methodologies like those proposed by Coad/Yourdon, Booch, Rumbaugh, and Jacobson are also summarized.
The document discusses concepts in object-oriented programming languages, including dynamic lookup, encapsulation, inheritance, sub-typing, and the evolution of programming languages from procedural to object-oriented. It provides examples to illustrate key concepts like how objects encapsulate data and methods, how inheritance allows code reuse, and how sub-typing allows extended functionality. The document also compares object-oriented design to top-down design and discusses how design patterns have emerged from solving common problems in object-oriented programming.
This document discusses various design patterns in Python and how they compare to their implementations in other languages like C++. It provides examples of how common patterns from the Gang of Four book like Singleton, Observer, Strategy, and Decorator are simplified or invisible in Python due to features like first-class functions and duck typing. The document aims to illustrate Pythonic ways to implement these patterns without unnecessary complexity.
This document provides an introduction to object-oriented programming (OOP) using Java. It defines key OOP concepts like classes, objects, encapsulation, inheritance and polymorphism. It explains the differences between procedural and object-oriented paradigms. Popular OOP languages like Java, C++, Smalltalk are listed, with examples of how classes and objects are used to represent real-world entities like vehicles. The advantages of OOP like code reusability and modular design are also summarized.
The document discusses object-oriented programming concepts in C++ including classes, objects, encapsulation, inheritance, polymorphism, and more. It provides examples of class definitions and accessing class members. Key points covered include:
- Classes are templates that define objects, while objects are instances of classes.
- Encapsulation involves wrapping data and functions together in a class. Inheritance allows classes to acquire properties from other classes.
- Polymorphism allows a method to perform different actions based on parameters. Message passing involves communication between objects.
- Structured programming divides a program into functions and data, while object-oriented programming divides it into objects that contain data and functions.
The document discusses several key concepts in object-oriented programming including objects, classes, abstraction, encapsulation, polymorphism, and inheritance. It provides examples of each concept in C++ and explains how they are implemented in code. Design patterns are introduced as general reusable solutions to common programming problems that improve flexibility, extensibility, and portability. Creational, structural, and behavioral patterns are outlined as the main categories of design patterns.
The document discusses several key concepts in object-oriented programming including objects, classes, abstraction, encapsulation, polymorphism, and inheritance. It provides examples of each concept in C++ and explains how they are implemented in code. Design patterns are introduced as general reusable solutions to common programming problems that improve flexibility, extensibility, and portability of code. The main types of design patterns - creational, structural, and behavioral - are outlined.
C++ [ principles of object oriented programming ]Rome468
C++ is an enhanced version of C that adds support for object-oriented programming. It includes everything in C and allows for defining classes and objects. Classes allow grouping of related data and functions, and objects are instances of classes. Key concepts of OOP supported in C++ include encapsulation, inheritance, and polymorphism. Encapsulation binds data and functions together in a class and allows hiding implementation details. Inheritance allows defining new classes based on existing classes to reuse their functionality. Polymorphism enables different classes to have similarly named functions that demonstrate different behavior.
The document provides an introduction to object oriented programming (OOP) compared to procedural programming. It discusses key concepts in OOP like objects, classes, attributes, methods, encapsulation. Objects contain attributes (data) and methods (behaviors). Classes are templates that define common attributes and methods for a set of objects. Encapsulation involves hiding class data and implementation details through access modifiers like private and public. Examples are provided to demonstrate how to define classes and create objects in C++ code.
C++ is an enhanced version of the C language. C++ includes everything that is part of C language and adds support for object oriented programming (OOP). With very few, very major exceptions, C++ is a superset of C
Extending Rotor with Structural Reflection to support Reflective Languagesfranciscoortin
Presentation of the results of the project "Extending Rotor with Structural Reflection to support Reflective Languages" at Microsoft Research, Redmond, Washington (USA)
This document provides an overview of object-oriented programming (OOP) including:
- The history and key concepts of OOP like classes, objects, inheritance, polymorphism, and encapsulation.
- Popular OOP languages like C++, Java, and Python.
- Differences between procedural and OOP like top-down design and modularity.
The document discusses procedural programming and object-oriented programming. Procedural programming focuses on functions and steps, while object-oriented programming focuses more on modeling real-world objects and their properties and interactions. Key concepts discussed for object-oriented programming include objects, classes, abstraction, encapsulation, inheritance, and polymorphism. Visual programming is also introduced, which allows creating graphical user interfaces visually rather than through code.
This document introduces C# and object-oriented programming concepts. It discusses event-driven programming, using objects to model problems, and the basic elements of objects like classes, fields, methods, and properties. It provides examples of modeling word processors, strategy games, and operating systems with objects. The document also demonstrates creating a simple GUI application without designers and discusses namespaces, instantiation, and calling methods and properties in C#.
This document provides an overview of object-oriented concepts and C++ programming. It discusses procedural programming, structured programming, and object-oriented programming approaches. It describes the key characteristics of OOP including modularity, abstraction, encapsulation, inheritance, polymorphism, and dynamic binding. The document also discusses the history and characteristics of the C++ programming language, and covers C++ tokens, identifiers, keywords, and constants.
This document provides an overview of object-oriented programming concepts in C++. It begins with a comparison of procedure-oriented programming and object-oriented programming. Key concepts of OOP like objects, classes, encapsulation, inheritance, and polymorphism are then explained. The basic structure of a C++ program including header files, functions, variables and data types, input/output operators, and comments is also covered at a high level.
This document discusses object-oriented programming concepts like classes, objects, encapsulation, inheritance, polymorphism, and more. It provides examples of defining classes with data members and member functions, creating objects, passing objects as arguments, and using constructors and destructors. Key points include how memory is allocated for classes and objects, characteristics of constructors, constructor overloading, and examples of programs using constructors and destructors to print student details.
Land of Pyramids, Petra, and Prayers - Egypt, Jordan, and Israel Tourppd1961
This is the presentation of photos and history of Land of Pyramids, Petra, and Prayers from our Egypt, Jordan, and Israel Tour during February, 2020. This was prepared and presented to the family and friends on 19th July, 2020.
This document discusses object-oriented programming in C++. It covers several topics related to OOP in C++ including classes, constructors, destructors, inheritance, polymorphism, and templates. The document consists of lecture slides that define key concepts and provide examples to illustrate how various OOP features work in C++.
The document discusses digital geometry and provides an overview of the topic. It begins with a brief history of geometry and discusses how the field of digital geometry emerged with the advent of computers and digital images. It then covers some key concepts in digital geometry including tessellations, connectivity in 2D and 3D, and the Jordan curve theorem. The document aims to provide an introduction to digital geometry and its fundamental topics.
This presentation was made in PRISM workshop on Technology Innovations and Trends in IT in the second decade of 21st century. The agenda is from IEEE Computer Society.
This presentation as made as a tutorial at NCVPRIPG (http://www.iitj.ac.in/ncvpripg/) at IIT Jodhpur on 18-Dec-2013.
Kinect is a multimedia sensor from Microsoft. It is shipped as the touch-free console for Xbox 360 video gaming platform. Kinect comprises an RGB Camera, a Depth Sensor (IR Emitter and Camera) and a Microphone Array. It produces a multi-stream video containing RGB, depth, skeleton, and audio streams.
Compared to common depth cameras (laser or Time-of-Flight), the cost of a Kinect is quite low as it uses a novel structured light diffraction and triangulation technology to estimate the depth. In addition, Kinect is equipped with special software to detect human figures and to produce its 20-joints skeletons.
Though Kinect was built for touch-free gaming, its cost effectiveness and human tracking features have proved useful in many indoor applications beyond gaming like robot navigation, surveillance, medical assistance and animation.
The new standard for C++ language has been signed in 2011. This new (extended) language, called C++11, has a number of new semantics (in terms of language constructs) and a number of new standard library support. The major language extensions are discussed in this presentation. The library will be taken up in a later presentation.
The document discusses function call optimization in C++. It provides examples of constructor, base class constructor, and get/set method calls in both debug and release builds. In release builds, the compiler fully optimizes constructor calls and inlines non-virtual functions like get/set methods to improve performance. Only virtual functions cannot be optimized as their call sequence depends on runtime type.
The document discusses different ways to define integer constants in C, including using integer literals, the #define preprocessor directive, enums, and the const qualifier. It provides a table comparing how each option is handled by the C preprocessor, compiler, and debugger. Code examples are given to illustrate the behavior. The key points are that integer literals are replaced directly, #define symbols are replaced textually, enums and const ints create symbols but const ints allow address operations in both the compiler and debugger.
The document discusses the key components of the Standard Template Library (STL) in C++, including containers, iterators, and algorithms. It explains that STL containers manage collections of objects, iterators allow traversing container elements, and algorithms perform operations on elements using iterators. The main STL containers like vector, list, deque, set, and map are introduced along with their basic functionality. Iterators provide a common interface for traversing container elements. Algorithms operate on elements through iterators but are independent of container implementations.
The document discusses object lifetime in C/C++. It covers the fundamentals of object lifetime including construction, use, and destruction. It also describes the different types of objects - static objects which are compiler-managed and have lifetime from program startup to termination, automatic objects which are stack-based and destroyed when they go out of scope, and dynamic objects which are user-managed and allocated on the free store.
This document provides guidance on effective technical documentation. It discusses planning documentation by determining the objective, intended audience, necessary content and approximate length. It also covers tips for clear writing style such as using active voice and avoiding contractions. The goals of technical documentation are clarity, comprehensiveness, conciseness and correctness.
The document discusses VLSI education and development in India, including:
1. A chronology of VLSI education from 1979-2005, including government initiatives like SMDP to boost VLSI design manpower and establish academic centers.
2. Surveys by VSI that found a growing gap between projected VLSI manpower needs and current outputs from Indian universities.
3. A workshop discussing goals of university-industry collaboration and feedback that graduating students lack industry readiness in areas like design skills and experience with industrial tools.
The document provides an overview of reconfigurable computing architectures. It discusses several leading companies in the field including Elixent, QuickSilver, Pact Corp, and Systolix. It then summarizes key reconfigurable computing architectures including D-Fabrix array, Adaptive Computing Machine (ACM), eXtreme Processing Platform (XPP), and PulseDSPTM. The ACM is based on QuickSilver's Self-Reconfigurable Gate Array (SRGA) architecture, which allows fast context switching and random access of the configuration memory.
The document discusses three potential factors that influence women's participation in the workforce: educational systems, technical inclination, and social environment. It explores whether educational systems are a culprit or savior, and whether women have weaker technical skills or are differently abled. Finally, it examines how social environments can be a culprit, through issues like declining sex ratios, workplace discrimination, and domestic discrimination against women with two full-time jobs.
Handling Exceptions In C & C++ [Part B] Ver 2ppd1961
This document discusses exception handling in C++. It provides an overview of how compilers manage exceptional control flow and how functions are instrumented to handle exceptions. It discusses normal vs exceptional function call flows, and the items involved in stack frames like context, finalization, and unwinding. It also summarizes Meyers' guidelines for exception safety, including using destructors to prevent leaks, handling exceptions in constructors, and preventing exceptions from leaving destructors.
The document discusses exception handling in C and C++. It covers exception fundamentals, and techniques for handling exceptions in C such as return values, global variables, goto statements, signals, and termination functions. It also discusses exception handling features introduced in C++ such as try/catch blocks and exception specifications.
The document discusses various models for offshore technology services in the electronics industry. It defines key terms like outsourcing, insourcing, onsite, offsite, and offshore. It describes different software delivery models including the onsite, offsite, offshore, and global delivery models. It discusses factors that determine if work can be done offshore, or is "offshoreable", as well as advantages and disadvantages of outsourcing. It outlines different types of offshore outsourcing like ITO, BPO, and software R&D. Finally, it provides a brief overview of software outsourcing in the electronics industry.
1. Concepts in Object Oriented Programming Languages Dr. P P Das [email_address] Interra Systems India Pvt. Ltd. June 07, 2004
2. Outline of lecture Object-oriented Design & Primary Language Concepts dynamic lookup encapsulation inheritance sub-typing Programming Languages – Past, Present & Future Understanding the Evolution Process Component Object Model Object Programming in a Language Independent Fashion
4. Objects An object consists of hidden data instance variables, also called member data hidden functions also possible public operations methods or member functions can also have public variables in some languages Object-oriented program: Send messages to objects
5. What’s interesting about this? Universal encapsulation construct Data structure File system Database Window Integer Metaphor usefully ambiguous sequential or concurrent computation distributed, synchronous or asynchronous communication
6. Object-Oriented Programming Programming methodology organize concepts into objects and classes build extensible systems Language concepts encapsulate data and functions into objects Sub-typing allows extensions of data types inheritance allows reuse of implementation
7. Object-Oriented Method Four steps Identify the objects at a given level of abstraction Identify the semantics (intended behavior) of objects Identify the relationships among the objects Implement these objects Iterative process Implement objects by repeating these steps Not necessarily top-down “ Level of abstraction” could start anywhere Booch
8. This Method Based on associating objects with components or concepts in a system Why iterative? An object is typically implemented using a number of constituent objects Apply same methodology to subsystems, underlying concepts
9. Example: Compute Weight of Car Car object: Contains list of main parts (each an object) chassis, body, engine, drive train, wheel assemblies Method to compute weight sum the weights to compute total Part objects: Each may have list of main sub-parts Each must have method to compute weight Example: Compute Weight of Car
11. Comparison to top-down design Similarity: A task is typically accomplished by completing a number of finer-grained sub-tasks Differences: Focus of top-down design is on program structure OO methods are based on modeling ideas Combining functions and data into objects makes data refinement more natural
12. Object-Orientation Programming methodology organize concepts into objects and classes build extensible systems Language concepts dynamic lookup encapsulation sub-typing allows extensions of concepts inheritance allows reuse of implementation
13. Language concepts “ dynamic lookup” different code for different object integer “+” different from real “+” encapsulation sub-typing inheritance
14. Dynamic Lookup In object-oriented programming, object message (arguments) code depends on object and message In conventional programming, operation (operands) meaning of operation is always the same
15. Example Add two numbers x add(y) different add if x is integer, complex Conventional programming add(x, y) function add has fixed meaning Very important distinction: Overloading is resolved at compile time, Dynamic lookup at run time
16. Language concepts “dynamic lookup” different code for different object integer “+” different from real “+” encapsulation sub-typing inheritance
17. Encapsulation Builder of a concept has detailed view User of a concept has “abstract” view Encapsulation is the mechanism for separating these two views
18. Comparison Traditional approach to encapsulation is through abstract data types Advantage Separate interface from implementation Disadvantage Not extensible in the way that OOP is
19. Abstract Data Types abstype q with mk_Queue : unit -> q is_empty : q -> bool insert : q * elem -> q remove : q -> elem is … in program end
20. Priority Q, similar to Queue abstype pq with mk_Queue : unit -> pq is_empty : pq -> bool insert : pq * elem -> pq remove : pq -> elem is … in program end But cannot intermix pq’s and q’s
21. Abstract Data Types Guarantee invariants of data structure only functions of the data type have access to the internal representation of data Limited “reuse” Cannot apply queue code to pqueue, except by explicit parameterization, even though signatures identical Cannot form list of points, colored points Data abstraction is important part of OOP, innovation is that it occurs in an extensible form
22. Language concepts “dynamic lookup” different code for different object integer “+” different from real “+” encapsulation sub-typing inheritance
23. Sub-typing and Inheritance Interface The external view of an object Sub-typing Relation between interfaces Implementation The internal representation of an object Inheritance Relation between implementations
24. Object Interfaces Interface The messages understood by an object Example: point x-coord : returns x-coordinate of a point y -coord : returns y -coordinate of a point move : method for changing location The interface of an object is its type.
25. Sub-typing If interface A contains all of interface B, then A objects can also be used B objects. Colored_point interface contains Point Colored_point is a subtype of Point change_color color move move y -coord y -coord x-coord x-coord Colored_point Point
27. Example class Point private float x, y public point move (float dx, float dy); class Colored_point private float x, y; color c public point move(float dx, float dy); point change_color(color newc); Sub-typing Colored points can be used in place of points Property used by client program Inheritance Colored points can be implemented by reusing point implementation Property used by implementer of classes
28. OO Program Structure Group data and functions Class Defines behavior of all objects that are instances of the class Sub-typing Place similar data in related classes Inheritance Avoid re-implementing functions that are already defined
29. Example: Geometry Library Define general concept shape Implement two shapes: circle, rectangle Functions on implemented shapes center, move, rotate, print Anticipate additions to library
30. Shapes Interface of every shape must include center, move, rotate, print Different kinds of shapes are implemented differently Square: four points, representing corners Circle: center point and radius
31. Subtype hierarchy Shape Circle Rectangle General interface defined in the shape class Implementations defined in circle, rectangle Extend hierarchy with additional shapes
32. Code placed in classes Dynamic lookup circle move(x,y) calls function c_move Conventional organization Place c_move, r_move in move function r_center r_move r_rotate r_print Rectangle c_center c_move c_rotate c_print Circle center move rotate print
33. Example use: Processing Loop Loop { Remove shape from work queue Perform action } Control loop does not know the type of each shape
34. Sub-typing differs from inheritance Collection Indexed Set Array Dictionary Sorted Set String Sub-typing Inheritance
35. Design Patterns Classes and objects are useful organizing concepts Culture of design patterns has developed around object-oriented programming Shows value of OOP for program organization and problem solving
36. What is a design pattern? General solution that has developed from repeatedly addressing similar problems. Example: singleton Restrict programs so that only one instance of a class can be created Singleton design pattern provides standard solution Not a class template Using most patterns will require some thought Pattern is meant to capture experience in useful form Standard reference: Gamma, Helm, Johnson, Vlissides
37. OOP in Conventional Language Records provide “dynamic lookup” Scoping provides another form of encapsulation Try object-oriented programming in ML. Will it work? Let’s see what’s fundamental to OOP
38. Dynamic Lookup (again) receiver operation (arguments) code depends on receiver and operation This is may be achieved in conventional languages using record with function components
39. Stacks as closures fun create_stack(x) = let val store = ref [x] in {push = fn (y) => store := y::(!store), pop = fn () => case !store of nil => raise Empty | y::m => (store := m; y) } end; val stk = create_stack(1); stk = {pop=fn,push=fn} : {pop:unit -> int, push:int -> unit}
40. Does this work ??? Depends on what you mean by “work” Provides encapsulation of private data dynamic lookup But cannot substitute extended stacks for stacks only weak form of inheritance can add new operations to stack not mutually recursive with old operations
42. Connection between Functional & OO λ -Calculus Functional Programming Impractical Strong Mathematical Properties Turing Machine Procedural Practical Little Math Grounding Object-Oriented Very Practical (fixes problems) No Math Basis/ Chaos Theory Future of OO – What we want to see
43. Fortran (1957-66) Program Structure Flat No recursion No nested scopes No statement grouping No control structures goto & computed goto if (like computed goto) do (based around labels) Static Data Structure Flat Arrays Later strings Only locals & globals Static No dynamic allocation All locations picked at compile time
44. Fortran: Abstractions? Functions/Procedures Absolutely no layered abstraction Layered Abstraction: “first understand in general or in the abstract what’s going on; then worry about the details.” Apply recursively for best effect At Least it’s consistent Achieved its goal to replace assembly Got people to actually use programming languages
45. Algol 60 Program Structure Recursive Nested scopes Modules Recursive function calls Full set of control structures Static Data Structure Flat Arrays No records Dynamic Dynamically sized arrays “ Algol Wall ” Data and program structure are separate worlds
47. Lisp (60-65) Program Structure Recursive Structure Calls Static Functions still aren’t first class values Dynamic Binding variables are bound within the calling environment Data Structure Recursive Atoms Lists Heterogeneous Lists Dynamic Garbage collection No records
48. PL/I (1964) and Algol 68 PL/I for example: DECLARE FOOBAR DECIMAL FIXED REAL (8,3) STATIC EXTERNAL Algol 68: Allows anything, for example: this is an acceptable name for a variable of type integer Operator overloading, unions, pointers to anything, Call-by-reference Everything is first class and transparent, including procedures Yet: procedures are objects while structs “extend the language”, structures are based on arrays and one has data and programs and never shall the twain meet
49. Pascal (1971-74) Program Structure Partially recursive Procedures with recursive calls No true blocks, only compound statements Static Data Structure Flat Records Dynamic Record types extend type system Based on arrays Strongly typed Most importantly its simple! Temporarily reversed the trend
50. Simula 67 The first Object-Oriented Language! The “Algol Wall” falls at last! Well, almost
51. Simula 67: the language Program Structure Recursive Same as others Data Structure Recursive Dynamic Classes & Objects Classes instantiate objects Classes have code and take parameters Inheritance
52. Smalltalk (1972-76) No primitives Classes are objects Even blocks are objects Dynamically typed Extremely uniform Despite all this, it never was quite “it” Syntax is nearly unreadable, example: Given a “Point” class the plus method might be: +pt [ Point new x: x+pt x y: y+pt y]
53. Ada (mid 1970s) A complicated language designed for the DOD Based on Pascal Many different forms of packaging and data type declarations Strong typing with the flexibility of making new types Security was important (unlike Smalltalk and Scheme) No quite Object-Oriented
54. C, C++ and Eiffel C gave us { } for blocks and lots of other nice syntax C++ made OO and exceptions mainstream Const allows expression of invariance Eiffel is in the Pascal family It is a well thought out OO language Gave us the concept of whole program optimization Hopefully the last of the Pascal line
55. Java Anonymous Inner Classes Have pretty good generics semantics Simplifies C++ greatly The Hero Language?
56. Prototype Based OO Languages Self etc. No classes, only objects New objects are made by cloning others A “class” is just an object you use as a template Can directly write objects and often add methods/properties on the fly May be strongly or weakly typed
57. BETA Everything is a “pattern” Patterns make up classes and methods There is no direct representation of an object Very similar to functional languages like Scheme Strongly typed
58. The Future? Patterns are first class entities representing classes and methods Direct object representations allow inner objects and modules Ways to express invariance Anonymous patterns and objects Integration of Generics into the polymorphism system
60. The Component Object Model COM is: Platform-independent, Distributed, Object-oriented, System for creating binary software components that can interact. Foundation technology for: Microsoft's OLE (compound documents), ActiveX (internet enabled components), Automation Others.
61. What COM is NOT? It is NOT an object-oriented language, It is NOT a coding or s/w Architecture Standard. It DOES NOT bind the Language, structure, and implementation details. It is NOT Language-specific
62. What COM is? It is a Binary standard applicable after a program has been translated to binary machine code It is an object model and programming requirements that enable COM objects to interact with other objects. COM objects can be within a single process, in other processes, even on remote machines. COM objects may be written in different languages, and may be structurally quite dissimilar.
63. Language Requirement for COM The language that can create Structures of pointers and, Call functions through pointers (either explicitly or implicitly) Object-oriented languages simplify the implementation of COM objects C++, Smalltalk and Java But other languages can be used: C, Pascal, Ada, and even BASIC programming environments can create and use COM objects.
64. Nature of a COM A software object is made up of : A set of data and The functions that manipulate the data. In a COM object the access to the object’s data is achieved exclusively through one or more sets of related functions. These function sets are called interfaces , and The functions of an interface are called methods. The only way to gain access to the methods of an interface is through a pointer to the interface.
65. Universal Interfaces COM defines: Basic interfaces that provide functions common to all COM-based technologies, A small number of API functions that all components require, How objects work together over a distributed environment, and Security features to ensure system and component integrity.
66. COM Objects and Interfaces Allows objects to interact across process and machine boundaries (as objects within a single process interact. The only way to manipulate the data associated with an object is through “an interface on the object”. “ An object that implements an interface” means that the object uses code that implements each method of the interface and provides COM binary-compliant pointers to those functions to the COM library. COM makes those functions available to any client who asks for a pointer to the interface, whether the client is inside or outside of the process that implements those functions.
67. Interfaces & Interface Implementations COM makes a fundamental distinction between: Interface Definitions and Interface Implementations. An interface is actually a contract that consists of a group of related function prototypes whose usage is defined but whose implementation is not. An interface implementation is the code a programmer supplies to carry out the actions specified in an interface definition.
68. Interfaces An interface is a contract consisting of a group of related function prototypes whose usage is defined but whose implementation is not. The function prototypes are equivalent to pure virtual base classes in C++ programming. An interface definition specifies the interface’s member functions, called methods, their return types, the number and types of their parameters, and what they must do. There is no implementation associated with an interface.
69. Interface Implementations An interface implementation is the code a programmer supplies to carry out the actions specified in an interface definition. Implementations of many of the interfaces a programmer could use in an object-based application are included in the COM libraries. Programmers are free to ignore these implementations and write their own. An interface implementation is to be associated with an object when an instance of that object is created, and provides the services that the object offers.
70. IStack A hypothetical interface named IStack Two methods – Push and Pop , successive calls to the Pop method return, in reverse order, values previously passed to the Push method. This interface definition, however, would not specify how the functions are to be implemented in code. In implementing the interface, however, one programmer might implement the stack as an array and implement the Push and Pop methods in such a way as to access that array; while another programmer might prefer to use a linked list and would implement the methods accordingly. Regardless of a particular implementation of the Push and Pop methods, however, the in-memory representation of a pointer to an IStack interface, and therefore its use by a client, is completely defined by the interface definition.
71. “ Interface” Connotations A C++ interface refers to all of the functions that a class supports and that clients of an object can call to interact with it. A COM interface refers to a predefined group of related functions that a COM class implements, but does not necessarily represent all the functions that the class supports. Java defines “interfaces” in just the same way as COM.
72. Universally Unique Identifier (GUID) A 128-bit value that uniquely identifies objects: OLE servers Interfaces Manager entry-point vectors, and Client objects Universally unique identifiers are used in cross-process communication, such as remote procedure calling (RPC) and OLE. Also called Globally Unique Identifier (GUID).
73. How an Interface Works? An instantiation of an interface implementation (the defined interfaces themselves cannot be instantiated without implementation) is simply pointer to an array of pointers to functions. Any code that has access to that array – a pointer through which it can access the array – can call the functions in that interface. A pointer to an interface is actually a pointer to a pointer to the table of function pointers. The term interface pointer is used to refer to this multiple indirection.
74. How an Interface Works? Conceptually, then, an interface pointer can be viewed simply as a pointer to a function table in which you can call those functions by de-referencing them by means of the interface pointer.
75. IUnknown & Interface Inheritance Inheritance in COM does not mean code reuse. W/o any implementations with interfaces, interface inheritance ! code inheritance. By inheritance, the contract associated with an interface is inherited in a C++ pure-virtual base-class fashion and modified by adding new methods or by further qualifying the allowed usage of methods. There is no selective inheritance in COM. If one interface inherits from another, it includes all the methods that the other interface defines.
76. Interface Inheritance Inheritance is rare (but found) in predefined COM interfaces. All interfaces (predefined / custom) must inherit their definitions from IUnknown containing: QueryInterface – allows to move freely between the different interfaces that an object supports AddRef – to manage object lifetime (Birth) Release – to manage object lifetime (Death) All COM objects must implement the IUnknown interface.