Object-Oriented Concepts By: Abdalla Mahmoud Java Instructor – Database Egypt [email_address] http://www.abdallamahmoud.com
Before we GO… <ul><li>The acts of the mind, wherein it exerts its power over simple ideas, are chiefly these three: </li><...
Contents <ul><li>Programming Paradigms. </li></ul><ul><li>Object-Oriented Paradigm. </li></ul><ul><li>Object-Oriented Conc...
Programming Languages <ul><li>A  programming language  is a machine-readable artificial language designed to express compu...
Programming Paradigm <ul><li>A  programming paradigm  is a fundamental style of computer programming. </li></ul><ul><li>Pa...
Concepts or Practice?
Consequences!
Object-Oriented Paradigm <ul><li>Object-oriented programming (OOP) is a programming paradigm that uses &quot;Objects&quot;...
Object-Oriented Paradigm 2
Objects
Classes Car Human
Classes 2 Man Suzuki Woman BMW
Abstraction & Inheritance Man Suzuki Woman BMW Car Human
Object and Their Interaction Program
Object and Their Interaction Program Tom,  hold your sweep!
Object and Their Interaction Program Tom,  hold your sweep! Tom, beat jerry!
Object and Their Interaction Program Tom.holdYourSweep() Tom.BeatJerry() IN PROGRAMMING
Object and Their Interaction Program Tom.holdYourSweep() Tom.BeatJerry() IN PROGRAMMING message
Object and Their Interaction Program Tom.holdYourSweep() Tom.BeatJerry() IN PROGRAMMING message message
OOP Concepts <ul><li>Class. </li></ul><ul><li>Object. </li></ul><ul><li>Instance. </li></ul><ul><li>State. </li></ul><ul><...
Class <ul><li>A class is an abstract definition of an object. </li></ul><ul><li>Defines how would the object look like whe...
Object <ul><li>An object  is the actual entity instance lives in memory and capable of doing real operations. </li></ul><u...
Object vs. Class <ul><li>Object </li></ul><ul><li>Class </li></ul>
State <ul><li>The value of an attribute (variable) of the object. </li></ul><ul><li>Describes some object’s characteristic...
Method <ul><li>An object’s ability to do some operation. </li></ul><ul><li>Implements some functionality. </li></ul><ul><l...
Message Passing <ul><li>The  process  by which an object: </li></ul><ul><ul><li>Sends data to another object. </li></ul></...
Encapsulation <ul><li>Encapsulation is hiding the functional details from the object calling it. </li></ul><ul><li>Can you...
Inheritance <ul><li>Inheritance  is the process of subclassing some class by inheriting all of its attributes and methods....
Inheritance (2) <ul><li>Superclass </li></ul><ul><li>Subclass </li></ul>
Polymorphism <ul><li>Different objects share the same interface (e.g: same method names). </li></ul><ul><li>Different func...
OOAD <ul><li>Object-oriented analysis and design (OOAD) is a software engineering approach that models a system as a group...
Design Patterns <ul><li>A design pattern is a formal way of documenting a solution to a design problem in a particular fie...
UML <ul><li>The Unified/Universal Modeling Language (UML) is a standardized visual specification language for object model...
Exercises <ul><li>Develop an object-oriented model for a goal slice of a soccer game. </li></ul><ul><li>Develop an object-...
Upcoming SlideShare
Loading in...5
×

Object-Oriented Concepts

2,892

Published on

Published in: Technology
2 Comments
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,892
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
231
Comments
2
Likes
3
Embeds 0
No embeds

No notes for slide
  • Abdalla mahmoud
  • Abdalla mahmoud
  • Abdalla mahmoud
  • Abdalla mahmoud
  • Abdalla mahmoud
  • Abdalla mahmoud
  • Object-Oriented Concepts

    1. 1. Object-Oriented Concepts By: Abdalla Mahmoud Java Instructor – Database Egypt [email_address] http://www.abdallamahmoud.com
    2. 2. Before we GO… <ul><li>The acts of the mind, wherein it exerts its power over simple ideas, are chiefly these three: </li></ul><ul><ul><li>Combining several simple ideas into one compound one, and thus all complex ideas are made. </li></ul></ul><ul><ul><li>The second is bringing two ideas, whether simple or complex, together, and setting them by one another so as to take a view of them at once, without uniting them into one, by which it gets all its ideas of relations. </li></ul></ul><ul><ul><li>The third is separating them from all other ideas that accompany them in their real existence: this is called abstraction, and thus all its general ideas are made. </li></ul></ul><ul><ul><ul><li>John Locke,  An Essay Concerning Human Understanding  (1690) </li></ul></ul></ul>
    3. 3. Contents <ul><li>Programming Paradigms. </li></ul><ul><li>Object-Oriented Paradigm. </li></ul><ul><li>Object-Oriented Concepts. </li></ul><ul><li>Exercises. </li></ul>
    4. 4. Programming Languages <ul><li>A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer. </li></ul><ul><li>Each programming language have some form of written specification of their syntax and semantics , since computers require precisely defined instructions. </li></ul><ul><li>They are not the same. </li></ul><ul><li>There’s nothing called “the best language”. </li></ul><ul><li>Languages most often characterized by their paradigm . </li></ul>
    5. 5. Programming Paradigm <ul><li>A programming paradigm is a fundamental style of computer programming. </li></ul><ul><li>Paradigms differ in: </li></ul><ul><ul><li>the concepts and abstractions used to represent the elements of a program </li></ul></ul><ul><ul><li>the steps that compose a computation. </li></ul></ul><ul><li>Examples </li></ul><ul><li>Event-Driven </li></ul><ul><li>Object-Oriented </li></ul><ul><li>Aspect-Oriented </li></ul><ul><li>Declarative </li></ul><ul><li>Imperative </li></ul><ul><li>Functional </li></ul><ul><li>Logic </li></ul>
    6. 6. Concepts or Practice?
    7. 7. Consequences!
    8. 8. Object-Oriented Paradigm <ul><li>Object-oriented programming (OOP) is a programming paradigm that uses &quot;Objects&quot; and their interactions to design applications and computer programs. </li></ul><ul><li>Everything around us are objects interacting with each others. </li></ul><ul><li>Each object has a set of features, including adjectives and verbs. </li></ul><ul><li>Object-oriented paradigms is sometimes thought to be a simulation of the real-world around us, which make it the paradigm of choice for most application domains: GUIs, games, business, etc. </li></ul>
    9. 9. Object-Oriented Paradigm 2
    10. 10. Objects
    11. 11. Classes Car Human
    12. 12. Classes 2 Man Suzuki Woman BMW
    13. 13. Abstraction & Inheritance Man Suzuki Woman BMW Car Human
    14. 14. Object and Their Interaction Program
    15. 15. Object and Their Interaction Program Tom, hold your sweep!
    16. 16. Object and Their Interaction Program Tom, hold your sweep! Tom, beat jerry!
    17. 17. Object and Their Interaction Program Tom.holdYourSweep() Tom.BeatJerry() IN PROGRAMMING
    18. 18. Object and Their Interaction Program Tom.holdYourSweep() Tom.BeatJerry() IN PROGRAMMING message
    19. 19. Object and Their Interaction Program Tom.holdYourSweep() Tom.BeatJerry() IN PROGRAMMING message message
    20. 20. OOP Concepts <ul><li>Class. </li></ul><ul><li>Object. </li></ul><ul><li>Instance. </li></ul><ul><li>State. </li></ul><ul><li>Method. </li></ul><ul><li>Encapsulation. </li></ul><ul><li>Inheritance. </li></ul><ul><li>Polymorphism. </li></ul>
    21. 21. Class <ul><li>A class is an abstract definition of an object. </li></ul><ul><li>Defines how would the object look like when created. </li></ul><ul><li>The object type . </li></ul><ul><li>Think of classes like the patents of actual inventions. </li></ul>
    22. 22. Object <ul><li>An object is the actual entity instance lives in memory and capable of doing real operations. </li></ul><ul><li>Created (instantiated) according to the abstract definition of a class. </li></ul><ul><li>Think of objects like some invention created according to some patent. </li></ul>
    23. 23. Object vs. Class <ul><li>Object </li></ul><ul><li>Class </li></ul>
    24. 24. State <ul><li>The value of an attribute (variable) of the object. </li></ul><ul><li>Describes some object’s characteristics. </li></ul><ul><li>Ex: Car.color = red </li></ul><ul><li>Adjectives . </li></ul>
    25. 25. Method <ul><li>An object’s ability to do some operation. </li></ul><ul><li>Implements some functionality. </li></ul><ul><li>Invoked by the same object or other interacting objects in the system. </li></ul><ul><li>Ex: car.accelerate() </li></ul><ul><li>Verbs . </li></ul>
    26. 26. Message Passing <ul><li>The process by which an object: </li></ul><ul><ul><li>Sends data to another object. </li></ul></ul><ul><ul><li>Asks the other object to invoke a method. </li></ul></ul><ul><li>In other words, objects talk to each others via messages. </li></ul>
    27. 27. Encapsulation <ul><li>Encapsulation is hiding the functional details from the object calling it. </li></ul><ul><li>Can you drive a car? </li></ul><ul><ul><li>Yes, I can! </li></ul></ul><ul><li>So, how does acceleration work? </li></ul><ul><ul><li>Huh? </li></ul></ul><ul><li>Details encapsulated (hidden) from the driver. </li></ul>
    28. 28. Inheritance <ul><li>Inheritance is the process of subclassing some class by inheriting all of its attributes and methods. </li></ul><ul><li>Parent class is called Superclass . </li></ul><ul><li>Child class is called Subclass . </li></ul><ul><li>Subclasses are more specialized version of a class. </li></ul>
    29. 29. Inheritance (2) <ul><li>Superclass </li></ul><ul><li>Subclass </li></ul>
    30. 30. Polymorphism <ul><li>Different objects share the same interface (e.g: same method names). </li></ul><ul><li>Different functionalities /implementations. </li></ul><ul><li>One object may have several interfaces. </li></ul><ul><li>One object can be treated as if it’s an instance from several types (classes). </li></ul>
    31. 31. OOAD <ul><li>Object-oriented analysis and design (OOAD) is a software engineering approach that models a system as a group of interacting objects. </li></ul><ul><li>Identifying what objects would we have in the system, and designing them. </li></ul><ul><li>Abstract Process </li></ul><ul><ul><li>Identify real entities (nouns)/ system entities. </li></ul></ul><ul><ul><li>Design entities attributes and methods. </li></ul></ul><ul><ul><li>Notate your design. </li></ul></ul>
    32. 32. Design Patterns <ul><li>A design pattern is a formal way of documenting a solution to a design problem in a particular field of expertise. </li></ul><ul><li>Best solutions for common problems. </li></ul><ul><li>Design Patterns (&quot;Gang-of-four book&quot;) by Erich Gamma et al, with patterns for object-oriented programming (software engineering). </li></ul>
    33. 33. UML <ul><li>The Unified/Universal Modeling Language (UML) is a standardized visual specification language for object modeling. </li></ul><ul><li>General-purpose modeling language that includes a graphical notation used to create an abstract model of a system, referred to as a UML model. </li></ul><ul><li>Example: Class Diagram </li></ul>
    34. 34. Exercises <ul><li>Develop an object-oriented model for a goal slice of a soccer game. </li></ul><ul><li>Develop an object-oriented model for the home-delivery slice in a fast food restaurant. </li></ul><ul><li>Identify the objects only in a banking system. </li></ul>
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×