Principles of Object-oriented Programming Programming Language Paradigms August 26, 2002.

Slides:



Advertisements
Similar presentations
Understand and appreciate Object Oriented Programming (OOP) Objects are self-contained modules or subroutines that contain data as well as the functions.
Advertisements

History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
Chapter 1 Object-Oriented System Development
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
Software: Systems and Application Software
Object Oriented System Development with VB .NET
Basic OOP Concepts and Terms
The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Object-oriented Programming Concepts
Introduction to Java. What is Java? A computer programming language that can be run as either an application or an applet. –What is the difference? It.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
Introduction to Object-oriented Programming Introduction to Object-oriented Programming CMPS 2143.
Smalltalk Andy Ko Johnvic Dualan Aaron Israel John John Llenteng Jehrom Christian De Vera Carlo Alvarez Michael John Butuyan.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Programming C# in comparison to C++, Java and Smalltalk by Anne Holzapfel.
Introduction to Object-oriented programming and software development Lecture 1.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
3A-1 1 Introduction to Smalltalk History of Smalltalk The philosophy of Smalltalk:  “...we have a universe of well-behaved objects that courteously ask.
An Object-Oriented Approach to Programming Logic and Design
UNIVERSITI TENAGA NASIONAL “Generates Professionals” CHAPTER 4 : Part 2 INTRODUCTION TO SOFTWARE DEVELOPMENT: PROGRAMMING & LANGUAGES.
Object-Oriented Programming Languages (OOPLs) An Introduction.
CS6359 Introduction to OO An Introduction to Object-oriented Analysis and Design.
 2003 Joel C. Adams. All Rights Reserved. Calvin CollegeDept of Computer Science(1/10) An Overview of Objects and the Java API Joel Adams and Jeremy Frens.
Unified Modeling Language, Version 2.0
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
CSCI-383 Object-Oriented Programming & Design Lecture 13.
 OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Introduction to C++ Shirley Moore
SNPL1 Woochang Lim What (Variable) + How (Function) = Object Objects are the physical and conceptual things we find in the universe around us. Object-Oriented.
Basic OOP Concepts and Terms. In this class, we will cover: Objects and examples of different object types Classes and how they relate to objects Object.
Chapter 12 Support for Object oriented Programming.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
10/8: Software What is software? –Types of software System software: Operating systems Applications Creating software –Evolution of software development.
Software Development Programming & Languages. Programming: A Five-Step Procedure Define the problem Design a solution Code the program Test the program.
CSE 341, S. Tanimoto Java brief review - 1 Java Brief Review Java’s strengths Object-oriented terminology Inheritance Interfaces An example with inheritance.
Alan Kay: LCC 2700: Intro to Computational Media Spring 2005.
Learners Support Publications Object Oriented Programming.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
Object Oriented Modeling David Li CTO, DigitalSesame.
(1) ICS 313: Programming Language Theory Chapter 12: Object Oriented Programming.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Introduction to OOP CPS235: Introduction.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
Java Programming, Second Edition Chapter Twelve Advanced Inheritance Concepts.
Inheritance and Class Hierarchies Chapter 3. Chapter Objectives  To understand inheritance and how it facilitates code reuse  To understand how Java.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
Introduction to Java. Java  An Object-Oriented, platform-neutral, secure language.  Object Oriented – software development method – a program is thought.
1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 Internet Database Lab 교수 김형주 Spring 2007.
Chapter 12: Support for Object- Oriented Programming Lecture # 18.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Object-oriented programming (OOP) is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their.
Visit for more Learning Resources
Sections Basic Concepts of Programming
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Aaron Bloomfield CS 415 Fall 2005
lecture 08, OO Design Principle
Basic OOP Concepts and Terms
Let’s Talk about… Smalltalk.
Presentation transcript:

Principles of Object-oriented Programming Programming Language Paradigms August 26, 2002

Pre-history 40s/50s – von Neumann architecture, stored program concept –Allows the development of general-purpose computing machines –Languages tend to be closely tied to the underlying architecture –Structured programming emerges Verb and task oriented Difficult to scale

History Simula-67 – objects, early GUI elements Xerox PARC (70s) – Smalltalk, bitmap displays, multiple windows, mouse, menus, icons, etc. Smalltalk-80 – modern version –released outside PARC. –Used a virtual machine and a bytecode compiler. –Spinoff companies create commercial versions.

Squeak History 1995: (Apple) – Alan Kay et al. create an open-source version of Smalltalk. –Development of a platform that can be used by people of all ages and skill levels. Squeak compiler and VM written in Squeak. Support for sound, 2-D and 3-D graphics, networking/web, Flash, etc.

Other OO history C++ developed at AT&T labs (Stroustrup:79) –Interested in an efficient language that extended C –Strong typing Objective C –Used in NeXT and OS X – combination of C and Smalltalk. Java developed by Sun ( ) –Initially developed as a language for communicating appliances/set-tops –Modified for use with WWW. –Smalltalk features in a typed environment

About Objects An ‘object’ is a way to capture both the features of a data structure and its behavior. Noun-oriented: encourages program design through thinking about pieces Construction of reusable elements

Classes and objects A class is a characterization of a type of object. –The Muppet class refers to the set of all muppets. –An object kermit is an instantiation of the Muppet class. Classes have: –Instance variables –Class variables –methods

An example Object subclass #Muppet instanceVariableNames: ‘name’ classVariableNames: ‘numberOfSpecies’ category: ‘muppets’ To create a muppet: Kermit <- [Muppet new].

Messages In Smalltalk, methods are invoked by sending the object a message. noun verb: arg1 mod: arg2 …. Modeled on speech acts.

Inheritance One of the most popular OO features is inheritance. –Can define new classes in terms of existing classes. –This creates a class hierarchy in which subclasses take on the behavior of their parent classes. A subclass can generate new behaviors by –Defining new methods –Overriding a parent method.

Inheritance example

Polymorphism Polymorphism is the idea that an object or method can perform the same operation on different data types. –Addition is polymorphic in most languages. Allows a programmer to write code without knowing the types of the data involved. [listOfStuff sort] <- don’t need to know what this is a list of.

Polymorphism example

Encapsulation Encapsulation provides a way of packing all the structure and behavior of an object into a single module. –Interface: the public face of an object –Implementation: How methods are carried out. Prevents users from misusing internal structure. Implementation can be changed without affecting external programs.

Encapsulation example