Introducing Object-Oriented Programming (OOP)

Introducing Object-Oriented Programming (OOP)

Introducing ObjectOriented Programming (OOP) CSCI N201: Programming Concepts Copyright 2005 Department of Computer & Information Science Goals By the end of this lecture, you should Understand the three pillars of ObjectOriented Programming: Inheritance, Encapsulation and Polymorphism. Understand what an object is. Understand object attributes, methods and events. 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. 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 0s The native language of a computer Difficult to program one misplaced 1 or 0 will cause the program to fail. Example of code: 1110100010101 111010101110 10111010110100

10100011110111 CSCI N201: Programming Concepts Copyright 2004 Department of Computer & Information Science Assembly Languages 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 language code needs to be translated to machine language before the computer processes it. Example:

ADD 1001010, 1011010 CSCI N201: Programming Concepts Copyright 2004 Department of Computer & Information Science High-Level Languages High-level languages represent a giant leap towards easier programming. The syntax of HL languages is similar to English. 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. 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, VBScript CSCI N201: Programming Concepts Copyright 2004 Department of Computer & Information Science Object-Oriented Languages Most object-oriented languages are

high-level languages. The focus of OOP languages is not on structure, but on modeling data. Programmers code using blueprints of data models called classes. 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.

Method 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, BackColor Events 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) 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 package Data can only be accessed through that package 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 class Methods 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 dont affect the parent classs 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)

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 objects attributes (data) and methods (operations). 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.

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 Theclass classCube Cubeis issimilar similar to tothe

thedefinition definitionof ofaa record, record,but butalso alsohas has functions functionsadded addedthat thatare are part partof

ofthe theobjects objects created. created. So Sowe wecan canthink think of ofititas asan anobject objecthas has

data dataattributes attributesand and function functionattributes 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 We call JavaScript an "objectinspired" language 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 JavaScript 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. CSCI N201: Programming Concepts

Copyright 2004 Department of Computer & Information Science Solution without OOP Design Uses parallel arrays Can be confusing Difficult to keep track of which car has which color, brand, etc. Example: CSCI N201: Programming Concepts Copyright 2004 Department of Computer & Information Science What is an API?

API stands for Application Programming Interface Allows programmers to extend the current language to included customized components Most 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 object Much cleaner code Re-usable object

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

Recently Viewed Presentations

  • Quantum Theory of Solid State Plasma Dielectric Response

    Quantum Theory of Solid State Plasma Dielectric Response

    The quantum theory of solid state plasma dielectric response is reviewed and discussed in detail in the random phase approximation (RPA). Schwinger Action Principle (Heisenberg Picture) Quantum Mechanics of both Fermions & Bosons
  • TRICARE Overseas Program Briefing

    TRICARE Overseas Program Briefing

    TRICARE. Overseas Program, or TOP, briefing. TOP is the Department of Defense health care program for geographical areas and territorial waters outside the U.S. ... sight or safety. In the event of an emergency, go to the nearest emergency care...
  • Trade Policy and WTO Accession for Economic Development ...

    Trade Policy and WTO Accession for Economic Development ...

    Trade Policy and WTO Accession for Economic Development: Application to Russia and the CIS Module 2 Openness, Growth and Poverty by Giorgio Barba Navaretti and Marcello Spanò December 13, 2004 Main questions addressed Which are the channels through which trade...
  • Chapter 7

    Chapter 7

    Environmental Classifications. B) Anaerobe - lacks the metabolic enzyme systems for using oxygen in respiration. 1) Obligate(strict) anaerobes - also lack the enzymes for processing toxic oxygen and cannot tolerate any free oxygen in the immediate environment and will die...
  • Vers un espace d'innovation pour une ville inclusive

    Vers un espace d'innovation pour une ville inclusive

    Vers un espace d'innovation pour une ville inclusive. Juste par cohérence visuelle, j'irais avec les couleurs définis pour VilleInclusive.com
  • Ανακάλυψη Περιοδικοτήτων σε Βιολογικές Ακολουθίες: Ανοικτά ...

    Ανακάλυψη Περιοδικοτήτων σε Βιολογικές Ακολουθίες: Ανοικτά ...

    x= xabxac Trie Trie - παράδειγμα Compressed Trie Compressed Trie - example Suffix Tree Κατασκευή του Δέντρου Επιθεμάτων Μια απλοϊκή θεώρηση: Ένθεση μιας πλευράς στο δέντρο για το επίθεμα S[1…m]$, Διαδοχική ένθεση των ...
  • Sports Nutrition Michael Puglisi, PhD, RD Estimation of

    Sports Nutrition Michael Puglisi, PhD, RD Estimation of

    Nutr. Exer. Metab. 2007. Protein Quality. Cuthbertsonet al. and Phillips et al. ~8.5-10g of EAAs maximally stimulates protein synthesis. Comes out to ~20-25 g of protein sources of high biological value ~40% EAAs ~20-25 oz milk, 3 ounces meat, fish...
  • Music: An Appreciation by Roger Kamien

    Music: An Appreciation by Roger Kamien

    Characteristics of Renaissance Music. Polyphonic mostly (4,5 or 6 voice parts) Instruments, if present, doubled the vocal parts. Vocal music more important than instrumental. Word painting: musical representation of specific poetic images. Balanced way of expression: no extreme contrasts of...