Object Oriented Programming in JavaScript

Slides:



Advertisements
Similar presentations
Object-Oriented Programming Basics Prof. Ankur Teredesai, Computer Science Department, RIT.
Advertisements

Introduction to PHP Dr. Charles Severance
PHP Functions / Modularity
JavaScript Functions, Objects, Array, and Control Structures Dr. Charles Severance
Classes & Objects Computer Science I Last updated 9/30/10.
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 4.
OOP & JAVA. HelloWorld.java /** * The HelloWorld class is an application that * displays "Hello World!" to the standard output. */ public class HelloWorld.
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Copyright by Scott GrissomCh 1 Objects and Classes Slide 1 Classes and Objects A Class refers to something in general describes a category of items a cookie.
ASP.NET Programming with C# and SQL Server First Edition
Getting PHP Hosting Dr. Charles Severance. What We Need We want to be able to put up our application on the web so anyone can access our URL (and so we.
Introduction to Programming. To gain a sound knowledge of programming principles To gain a sound knowledge of object- orientation To be able to critically.
OOP in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Object Oriented Software Development
Introduction to Object Oriented Programming. Object Oriented Programming Technique used to develop programs revolving around the real world entities In.
Conditional Execution Chapter 3 Python for Informatics: Exploring Information
Object-Oriented Programming with Java Lecture 1: Introduction Autumn, 2007.
2010/11 : [1]Building Web Applications using MySQL and PHP (W1)OO PHP PHP Classes and Object Orientation.
PHP Functions Dr. Charles Severance
Introduction to Object-Oriented Programming Lesson 2.
Programming. To gain a sound knowledge of programming principles To gain a sound knowledge of object- orientation To be able to critically assess the.
PHP Functions / Modularity Dr. Charles Severance
Loops and Iteration Chapter 5 Python for Informatics: Exploring Information
5.1 Basics of defining and using classes A review of class and object definitions A class is a template or blueprint for an object A class defines.
Defining Classes. Why is Java designed this way? Improving our class Creating our own class Using our class Implementing our class.
What is an object?. What Makes an Object? An object has identity (it acts as a single whole). Every object has a name that identifies what it is. Ex.
1 Sections 6.4 – 6.5 Methods and Variables Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
Object-oriented programming (OOP) is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their.
Python Objects Charles Severance Python for Everybody
Introduction to Object-oriented Programming
C.R.U.D. Charles Severance
Introduction to Dynamic Web Content
PHP Arrays Dr. Charles Severance
Our Technologies Dr. Charles Severance
Objects as a programming concept
PHP Functions / Modularity
Objects as a programming concept
Getting PHP Hosting Dr. Charles Severance
Using JSON Dr. Charles Severance
Object-Oriented Programming Basics
PHP Object Oriented Programming (OOP)
Regular Expressions Chapter 11 Python for Everybody
Introduction to PHP Dr. Charles Severance
Objects as a programming concept
Loops and Iteration Chapter 5 Python for Everybody
Introduction to PHP Dr. Charles Severance
HTTP Parameters and Arrays
Functions Chapter 4 Python for Everybody
Classes and Objects in Java
PHP Arrays Dr. Charles Severance
About the Presentations
Object Oriented Concepts -I
Expressions and Control Flow in PHP
Tuples Chapter 10 Python for Everybody
PHP Namespaces (in progress)
Your First Java Application
Introduction to Dynamic Web Content
Using jQuery Dr. Charles Severance
Classes and Objects in Java
CLASSES, AND OBJECTS A FIRST LOOK
Workshop for Programming And Systems Management Teachers
Overview of Java 6-Apr-19.
Charles Severance Single Table SQL.
Classes and Objects in Java
Data Modelling Many to Many
Lecture 1 Introduction to Software Construction
Python Objects Charles Severance Python for Everybody
Model View Controller (MVC)
Introduction to Computer Science and Object-Oriented Programming
Python Objects Charles Severance Python for Everybody
Presentation transcript:

Object Oriented Programming in JavaScript Dr. Charles Severance www.wa4e.com http://www.wa4e.com/code/javascript-objects http://www.wa4e.com/code/javascript-objects.zip

Definitions Class - a template - Dog Method or Message - A defined capability of a class - bark() Attribute - A defined data item in a class - color Object or Instance - A particular instance of a class - Lassie Image CC-By 2.0: https://www.flickr.com/photos/dinnerseries/23570475099

Terminology: Class Defines the abstract characteristics of a thing (object), including the thing's characteristics (its attributes, fields, or properties) and the thing’s behaviors (the things it can do, or methods, operations, or features). One might say that a class is a blueprint or factory that describes the nature of something. For example, the class Dog would consist of traits shared by all dogs, such as breed and fur color (characteristics), and the ability to bark and sit (behaviors). http://en.wikipedia.org/wiki/Object-oriented_programming

Terminology: Class A pattern (exemplar) of a class. The class of Dog defines all possible dogs by listing the characteristics and behaviors they can have; the object Lassie is one particular dog, with particular versions of the characteristics. A Dog has fur; Lassie has brown-and-white fur. http://en.wikipedia.org/wiki/Object-oriented_programming

Terminology: Instance One can have an instance of a class or a particular object. The instance is the actual object created at runtime. In programmer jargon, the Lassie object is an instance of the Dog class. The set of values of the attributes of a particular object is called its state. The object consists of state and the behavior that’s defined in the object’s class. Object and Instance are often used interchangeably. http://en.wikipedia.org/wiki/Object-oriented_programming

Method and Message are often used interchangeably. Terminology: Method An object’s abilities. In language, methods are verbs. Lassie, being a Dog, has the ability to bark. So bark() is one of Lassie’s methods. She may have other methods as well, for example sit() or eat() or walk() or save_timmy(). Within the program, using a method usually affects only one particular object; all Dogs can bark, but you need only one particular dog to do the barking Method and Message are often used interchangeably. http://en.wikipedia.org/wiki/Object-oriented_programming

Objects in JavaScript The OO pattern in JavaScript is a little different. The function is indeed a store and reuse pattern. The function keyword returns a value which is the function itself - it makes a function!

First-Class Functions In computer science, a programming language is said to have first-class functions if it treats functions as first-class citizens. Specifically, this means the language supports passing functions as arguments to other functions, returning them as the values from other functions, and assigning them to variables or storing them in data structures. http://en.wikipedia.org/wiki/First-class_function

A Sample Class

This is the template for making PartyAnimal objects. function PartyAnimal() { this.x = 0; this.party = function () { this.x = this.x + 1; console.log("So far "+this.x); } an = new PartyAnimal(); an.party(); This is the template for making PartyAnimal objects. Each PartyAnimal object has a bit of data. Each PartyAnimal object has a bit of code. Create a PartyAnimal object Tell the object to run the party() code. js01.htm

an x: party() js-01.htm function PartyAnimal() { this.x = 0; this.party = function () { this.x = this.x + 1; console.log("So far "+this.x); } an = new PartyAnimal(); an.party(); an x: party() js-01.htm

Object Life Cycle http://en.wikipedia.org/wiki/Constructor_(computer_science)

Object Life Cycle Objects are created, used, and discarded Constructors are implicit in JavaScript - natural A constructor in a class is a special block of statements called when an object is created Destructors are not provided by JavaScript http://en.wikipedia.org/wiki/Constructor_(computer_science)

js03.htm function PartyAnimal() { this.x = 0; console.log("In the 'constructor'"); this.party = function () { this.x = this.x + 1; console.log("So far "+this.x); } an = new PartyAnimal(); an.party(); js03.htm

Many Instances We can create lots of objects - the class is the template for the object. We can store each distinct object in its own variable. We call this having multiple instances of the same class. Each instance has its own copy of the instance variables.

Constructors can have additional parameters Constructors can have additional parameters. These can be used to set up instance variables for the particular instance of the class (i.e., for the particular object). function PartyAnimal(nam) { this.x = 0; this.name = nam; console.log("Built "+nam); this.party = function () { this.x = this.x + 1; console.log(nam+"="+this.x); } s = new PartyAnimal("Sally"); s.party(); j = new PartyAnimal("Jim"); j.party(); js04.htm

x: name: x: name: js04.htm s j function PartyAnimal(nam) { this.x = 0; this.name = nam; console.log("Built "+nam); this.party = function () { this.x = this.x + 1; console.log(nam+"="+this.x); } s = new PartyAnimal("Sally"); s.party(); j = new PartyAnimal("Jim"); j.party(); j x: name: js04.htm

Definitions Class - a template - Dog Method or Message - A defined capability of a class - bark() Object or Instance - A particular instance of a class - Lassie Constructor - A method which is called when the instance / object is created

Summary The key for this lecture is to understand how to read OO documentation for JavaScript and how to use objects. Building brand new complex objects is more advanced. It is important to remember that JavaScript uses objects as its “Associative Array”.

Acknowledgements / Contributions These slides are Copyright 2010- Charles R. Severance (www.dr-chuck.com) as part of www.wa4e.com and made available under a Creative Commons Attribution 4.0 License. Please maintain this last slide in all copies of the document to comply with the attribution requirements of the license. If you make a change, feel free to add your name and organization to the list of contributors on this page as you republish the materials. Initial Development: Charles Severance, University of Michigan School of Information Insert new Contributors and Translators here including names and dates Continue new Contributors and Translators here Note from Chuck. Please retain and maintain this page as you remix and republish these materials. Please add any of your own improvements or contributions.

Additional Source Information “Snowman Cookie Cutter” by Didriks is licensed under CC BY https://www.flickr.com/photos/dinnerseries/23570475099 Photo from the television program Lassie. Lassie watches as Jeff (Tommy Rettig) works on his bike is Public Domain https://en.wikipedia.org/wiki/Lassie - /media/File:Lassie_and_Tommy_Rettig_1956.JPG