Your SlideShare is downloading. ×
0
Object Oriented ProgrammingDevelopment            By:           Marc Conrad           University of Luton            Email...
What are we doing today? Introduction of:   the lecturer   Objects   Basic Terminology   C++   the module                 ...
What is Object OrientedProgramming?                      Identifying objects and                      assigning responsibi...
What is an object? Tangible Things as a car, printer, ... Roles           as employee, boss, ... Incidents       as flight...
So, what are objects? an object represents an individual, identifiable item, unit, or entity, either real or abstract, wit...
Why do we care aboutobjects? Modularity - large software projects can be split up in smaller pieces. Reuseability - Progra...
Example: The Person class#include<string>#include<iostream>class Person{   char name[20];                                 ...
The two parts of an object      Object = Data + Methods    or to say the same differently:An object has the responsibility...
Basic Terminology Abstraction is the representation of the essential features of an object. These are ‘encapsulated’ into ...
Basic Terminology:Inheritance Inheritance means that one class inherits the characteristics of another class. This is also...
Basic Terminology:Polymorphism Polymorphism means “having many forms”. It allows different objects to respond to the same ...
Basic Terminology:Aggregation Aggregation describes a “has a” relationship. One object is a part of another object.       ...
Basic Terminology:Behaviour and Messages The most important aspect of an object is its behaviour (the things it can do). A...
The two steps of ObjectOriented Programming Making Classes: Creating, extending or reusing abstract data types. Making Obj...
Historical Notes C++ owes most to C. Other ancestors are Simula67 and Algol68.                        C++ 1987 First versi...
C++ and C C is a subset of C++. Advantages: Existing C libraries can be used, efficient code can be generated. But: C++ ha...
C++ and Java Java is a full object oriented language, all code has to go into classes. C++ - in contrast - is a hybrid lan...
Module Outline Introduction        Inheritance The non object      Aggregation oriented basics     Polymorphism Classes   ...
Assessment Details 50% in course and 50% exam. For more details for the in course assignment see separate handout.        ...
Books Teach Yourself C++ in 10 minutes, J. Liberty, SAMS 1999. C++ - How to program, Deitel & Deitel, Prentice Hall, 2001....
Websites A C++ online tutorial: http://www.cplusplus.com/doc/tutorial/ The C++ FAQ: http://www.parashift.com/c++-faq-lite ...
Upcoming SlideShare
Loading in...5
×

Week1

105

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
105
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Week1"

  1. 1. Object Oriented ProgrammingDevelopment By: Marc Conrad University of Luton Email: Marc.Conrad@luton.ac.uk Room: D104 1
  2. 2. What are we doing today? Introduction of: the lecturer Objects Basic Terminology C++ the module 2
  3. 3. What is Object OrientedProgramming? Identifying objects and assigning responsibilities to these objects. Objects communicate toAn object is like a other objects by sending black box. messages.The internal Messages are received by details are the methods of an object hidden. 3
  4. 4. What is an object? Tangible Things as a car, printer, ... Roles as employee, boss, ... Incidents as flight, overflow, ... Interactions as contract, sale, ... Specifications as colour, shape, … 4
  5. 5. So, what are objects? an object represents an individual, identifiable item, unit, or entity, either real or abstract, with a well-defined role in the problem domain. Or An "object" is anything to which a concept applies. Etc. 5
  6. 6. Why do we care aboutobjects? Modularity - large software projects can be split up in smaller pieces. Reuseability - Programs can be assembled from pre-written software components. Extensibility - New software components can be written or developed from existing ones. 6
  7. 7. Example: The Person class#include<string>#include<iostream>class Person{ char name[20]; private int yearOfBirth; datapublic: void displayDetails() { cout << name << " born in " << yearOfBirth << endl; public } processes //...};
  8. 8. The two parts of an object Object = Data + Methods or to say the same differently:An object has the responsibility to know and the responsibility to do. = + 8
  9. 9. Basic Terminology Abstraction is the representation of the essential features of an object. These are ‘encapsulated’ into an abstract data type. Encapsulation is the practice of including in an object everything it needs hidden from other objects. The internal state is usually not accessible by other objects. 9
  10. 10. Basic Terminology:Inheritance Inheritance means that one class inherits the characteristics of another class. This is also called a “is a” relationship: A car is a vehicle A dog is an animal A teacher is a person 10
  11. 11. Basic Terminology:Polymorphism Polymorphism means “having many forms”. It allows different objects to respond to the same message in different ways, the response specific to the type of the object. E.g. the message displayDetails() of the Person class should give different results when send to a Student object (e.g. the enrolment number). 11
  12. 12. Basic Terminology:Aggregation Aggregation describes a “has a” relationship. One object is a part of another object. A car has wheels. We distinguish between composite aggregation (the composite “owns” the part) and shared aggregation (the part is shared by more then one composite). 12
  13. 13. Basic Terminology:Behaviour and Messages The most important aspect of an object is its behaviour (the things it can do). A behaviour is initiated by sending a message to the object (usually by calling a method). 13
  14. 14. The two steps of ObjectOriented Programming Making Classes: Creating, extending or reusing abstract data types. Making Objects interact: Creating objects from abstract data types and defining their relationships. 14
  15. 15. Historical Notes C++ owes most to C. Other ancestors are Simula67 and Algol68. C++ 1987 First versions of C++ in 1980 under the name “C with classes”. Since 1983 the name C++ is used. 1990: ANSI/ISO 9899 defines a standard for C 1998: ISO/IEC 14882 specifies the 15 standard for C++
  16. 16. C++ and C C is a subset of C++. Advantages: Existing C libraries can be used, efficient code can be generated. But: C++ has the same caveats and problems as C (e.g. pointer arithmetic,…). C++ can be used both as a low level and as a high level language. n th e e fo cus o ects. W l asp leve 16 hi gh
  17. 17. C++ and Java Java is a full object oriented language, all code has to go into classes. C++ - in contrast - is a hybrid language, capable both of functional and object oriented programming. So, C++ is more powerful but also more difficult to handle than Java. 17
  18. 18. Module Outline Introduction Inheritance The non object Aggregation oriented basics Polymorphism Classes Multifile Development Design Approaches Testing 18
  19. 19. Assessment Details 50% in course and 50% exam. For more details for the in course assignment see separate handout. 19
  20. 20. Books Teach Yourself C++ in 10 minutes, J. Liberty, SAMS 1999. C++ - How to program, Deitel & Deitel, Prentice Hall, 2001. Object Oriented Programming with C++, David Parson, Letts Educational, London 1997. 20
  21. 21. Websites A C++ online tutorial: http://www.cplusplus.com/doc/tutorial/ The C++ FAQ: http://www.parashift.com/c++-faq-lite The homepage of Bjarne Stroustrup, the inventor of C++: http://www.research.att.com/~bs ny m ore! ma n y, ma A nd 21
  1. A particular slide catching your eye?

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

×