CSCI N201: Programming Concepts Copyright ©2005  Department of Computer & Information Science Introducing Object-Oriented Programming (OOP)

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

When is Orientated Programming NOT? Mike Fitzpatrick.
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Computers Are Your Future
Systems Analysis and Design 8th Edition
Introducing Programming a general discussion. What is a Program? Sets of instructions that get the computer to do something Programs may be a few lines.
Object-Oriented Design & Programming Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
1 Programming for Engineers in Python Autumn Lecture 5: Object Oriented Programming.
Computers: Tools for an Information Age
1 CMSC 132: Object-Oriented Programming II Software Development IV Department of Computer Science University of Maryland, College Park.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
CSCI N201: Programming Concepts Copyright ©2005  Department of Computer & Information Science Introducing Programming.
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
Programming Paradigms Imperative programming Functional programming Logic programming Event-driven programming Object-oriented programming A programming.
Copyright ©2004  Department of Computer & Information Science Introducing Computer Science & Algorithms.
CSCI N341: Client-Side Web Programming Copyright ©2004  Department of Computer & Information Science "Object-Oriented" JavaScript.
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
Copyright ©2005  Department of Computer & Information Science Introducing Programming.
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
Computers Are Your Future Tenth Edition Chapter 11: Programming Languages & Program Development Copyright © 2009 Pearson Education, Inc. Publishing as.
Programming Languages – Coding schemes used to write both systems and application software A programming language is an abstraction mechanism. It enables.
Program development & programming languages Chapter 13.
A First Program Using C#
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
INTRODUCING COMPUTER SCIENCE CSCI N341: Client-Side Programming.
Introduction to Object-oriented programming and software development Lecture 1.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 8: More About OOP and GUIs.
O BJECT O RIENTATION F UNDAMENTALS Prepared by: Gunjan Chhabra.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
COMPUTER PROGRAMMING Source: Computing Concepts (the I-series) by Haag, Cummings, and Rhea, McGraw-Hill/Irwin, 2002.
Introducing Computer Science & Algorithms. Goals By the end of this lecture you should … … understand Computer Science as the study of algorithms … understand.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
Programming Paradigms
BIT 1003 – Presentation 7. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Enhancing JavaScript Using Application Programming Interfaces (APIs)
JavaScript, Fourth Edition
Computer Concepts 2014 Chapter 12 Computer Programming.
Chapter 6 Object-Oriented Java Script JavaScript, Third Edition.
Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent.
Systems Analysis & Design 7 th Edition Chapter 5.
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.
Principles of Software Development 1 Principles Of Software Design and Development Types of language / Choosing a language.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
Definition of Object - Oriented Language.. Object-oriented programming (OOP) is a programming language model organized around "objects" rather than "actions"
1 Programming Paradigms Object Orientated Programming Paradigm (OOP)
Software Development Programming & Languages. Programming: A Five-Step Procedure Define the problem Design a solution Code the program Test the program.
Learners Support Publications Object Oriented Programming.
Programming Paradigms Lecturer Hamza Azeem. What is PP ? Revision of Programming concepts learned in CPLB Learning how to perform “Object-Oriented Programming”
1.
Programming and Languages Dept. of Computer and Information Science IUPUI.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
OO in Context Lecture 13: Dolores Zage. Confused about OO Not alone, there is much confusion about OO many programs are claimed to be OO but are not really.
Copyright ©2005  Department of Computer & Information Science Object Based JavaScript.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
Software Design and Development Languages and Environments Computing Science.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
 By the end of this lecture, you should …  Understand the three pillars of Object- Oriented Programming: Inheritance, Encapsulation and Polymorphism.
Copyright ©2005  Department of Computer & Information Science Object Oriented Concepts.
Object Oriented Programming
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
JAVA By Waqas.
The Movement To Objects
Chapter 8: More About OOP and GUIs
Sections Basic Concepts of Programming
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
INTRODUCTION TO OOP Objective:
PRINCIPALES OF OBJECT ORIENTED PROGRAMMING
Computer Programming.
Presentation transcript:

CSCI N201: Programming Concepts Copyright ©2005  Department of Computer & Information Science Introducing Object-Oriented Programming (OOP)

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Goals By the end of this lecture, you should …By the end of this lecture, you should … Understand the three pillars of Object- Oriented Programming: Inheritance, Encapsulation and Polymorphism.Understand the three pillars of Object- Oriented Programming: Inheritance, Encapsulation and Polymorphism. Understand what an object is.Understand what an object is. Understand object attributes, methods and events.Understand object attributes, methods and events. Understand how programmers use APIs.Understand how programmers use APIs.

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Programming Languages Programming languages allow programmers to code software.Programming languages allow programmers to code software. The three major families of languages are:The three major families of languages are: –Machine languages –Assembly languages –High-Level languages

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Machine Languages Comprised of 1s and 0sComprised of 1s and 0s The “native” language of a computerThe “native” language of a computer Difficult to program – one misplaced 1 or 0 will cause the program to fail.Difficult to program – one misplaced 1 or 0 will cause the program to fail. Example of code: Example of code:

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Assembly Languages Assembly languages are a step towards easier programming.Assembly languages are a step towards easier programming. Assembly languages are comprised of a set of elemental commands which are tied to a specific processor.Assembly languages are comprised of a set of elemental commands which are tied to a specific processor. Assembly language code needs to be translated to machine language before the computer processes it.Assembly language code needs to be translated to machine language before the computer processes it. Example: ADD , Example: ADD ,

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science High-Level Languages High-level languages represent a giant leap towards easier programming.High-level languages represent a giant leap towards easier programming. The syntax of HL languages is similar to English.The syntax of HL languages is similar to English. Historically, we divide HL languages into two groups:Historically, we divide HL languages into two groups: –Procedural languages –Object-Oriented languages (OOP)

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Procedural Languages Early high-level languages are typically called procedural languages.Early high-level languages are typically called procedural languages. Procedural languages are characterized by sequential sets of linear commands. The focus of such languages is on structure.Procedural languages are characterized by sequential sets of linear commands. The focus of such languages is on structure. Examples include C, COBOL, Fortran, LISP, Perl, HTML, VBScriptExamples include C, COBOL, Fortran, LISP, Perl, HTML, VBScript

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Object-Oriented Languages Most object-oriented languages are high- level languages.Most object-oriented languages are high- level languages. The focus of OOP languages is not on structure, but on modeling data.The focus of OOP languages is not on structure, but on modeling data. Programmers code using “blueprints” of data models called classes.Programmers code using “blueprints” of data models called classes. Examples of OOP languages include C++, Visual Basic.NET and Java.Examples of OOP languages include C++, Visual Basic.NET and Java.

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Object Oriented Programming Object – Unique programming entity that has methods, has attributes and can react to events.Object – Unique programming entity that has methods, has attributes and can react to events. Method – Things which an object can do; the “verbs” of objects. In code, usually can be identified by an “action” word -- Hide, ShowMethod – Things which an object can do; the “verbs” of objects. In code, usually can be identified by an “action” word -- Hide, Show

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Object Oriented Programming Attribute – Things which describe an object; the “adjectives” of objects. In code, usually can be identified by a “descriptive” word – Enabled, BackColorAttribute – Things which describe an object; the “adjectives” of objects. In code, usually can be identified by a “descriptive” word – Enabled, BackColor Events – Forces external to an object to which that object can react. In code, usually attached to an event procedureEvents – Forces external to an object to which that object can react. In code, usually attached to an event procedure

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Object Oriented Programming Class – Provides a way to create new objects based on a “meta-definition” of an object (Example: The automobile class)Class – Provides a way to create new objects based on a “meta-definition” of an object (Example: The automobile class) Constructors – Special methods used to create new instances of a class (Example: A Honda Civic is an instance of the automobile class.)Constructors – Special methods used to create new instances of a class (Example: A Honda Civic is an instance of the automobile class.)

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science OOP - Encapsulation Incorporation into a class of data & operations in one packageIncorporation into a class of data & operations in one package Data can only be accessed through that packageData can only be accessed through that package “Information Hiding”“Information Hiding”

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science OOP - Inheritance Allows programmers to create new classes based on an existing classAllows programmers to create new classes based on an existing class Methods and attributes from the parent class are inherited by the newly-created classMethods and attributes from the parent class are inherited by the newly-created class New methods and attributes can be created in the new class, but don’t affect the parent class’s definitionNew methods and attributes can be created in the new class, but don’t affect the parent class’s definition

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science OOP - Polymorphism Creating methods which describe the way to do some general function (Example: The “drive” method in the automobile class)Creating methods which describe the way to do some general function (Example: The “drive” method in the automobile class) Polymorphic methods can adapt to specific types of objects.Polymorphic methods can adapt to specific types of objects.

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Classes and Objects A class is a data type that allows programmers to create objects. A class provides a definition for an object, describing an object’s attributes (data) and methods (operations).A class is a data type that allows programmers to create objects. A class provides a definition for an object, describing an object’s attributes (data) and methods (operations). An object is an instance of a class. With one class, you can have as many objects as required.An object is an instance of a class. With one class, you can have as many objects as required. This is analogous to a variable and a data type, the class is the data type and the object is the variable.This is analogous to a variable and a data type, the class is the data type and the object is the variable.

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Sample Class Defintion Class Cube Side As Real Volume As Real Subprogram SetSide(NewSide) Set Side = NewSide End Subprogram Subprogram ComputeVolume() Set Volume = Side ^ 3 End Subprogram Function GetVolume() As Real Set GetVolume = Volume End Function Function GetSide() As Real Set GetSide = Side End Function End Class The class Cube is similar to the definition of a record, but also has functions added that are part of the objects created. So we can think of it as an object ‘has’ data attributes and function attributes

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Sample Instance of Class Main Program Declare Cube1 As Cube Write “Enter a positive number:” Input Side1 Call Cube1.SetSide(Side1) Call Cube1.ComputeVolume Write “The volume of a cube of side ”, Cube1.GetSide Write “is ”, Cube1.GetVolume End Program

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Is JavaScript an OOP language? Well, not really …Well, not really … We call JavaScript an "object-inspired" languageWe call JavaScript an "object-inspired" language It uses objects by way of supporting inheritance and encapsulation, but it doesn't really provide support for polymorphism.It uses objects by way of supporting inheritance and encapsulation, but it doesn't really provide support for polymorphism.

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science “Object-Oriented” JavaScript More like “Object-Inspired” JavaScriptMore like “Object-Inspired” JavaScript We can create new, custom, re-usable objects in JavaScript that include their own methods, properties and events.We can create new, custom, re-usable objects in JavaScript that include their own methods, properties and events. Consider the following problem: “I want to record the color, brand, horsepower and price of several cars.”Consider the following problem: “I want to record the color, brand, horsepower and price of several cars.”

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Solution without OOP Design Uses parallel arraysUses parallel arrays Can be confusingCan be confusing –Difficult to keep track of which car has which color, brand, etc. Example:Example:

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science What is an API? API stands for Application Programming InterfaceAPI stands for Application Programming Interface Allows programmers to extend the current language to included customized componentsAllows programmers to extend the current language to included customized components Most modern languages incorporate APIsMost modern languages incorporate APIs

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Solution with OOP Design Calls to an API that contains the custom car objectCalls to an API that contains the custom car object Much cleaner codeMuch cleaner code Re-usable objectRe-usable object

CSCI N201: Programming Concepts Copyright ©2004  Department of Computer & Information Science Questions?