spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / experts / javascript / column108


JScript .NET, Part II: Major Features

Sr Instructional Designer D2L-Moodle,Clearance
WSI Nationwide, Inc.
US-NJ-Fort Monmouth

Justtechjobs.com Post A Job | Post A Resume
Developer News
News Flash: Adobe Has iPhone Workaround
Adobe's Flash 10.1 Goes Mobile (Minus iPhone)
A Salute to Visionary CEOs


The Class Concept

Supporting the class concept is a must for modern programming languages. JScript .NET's support of classes is classic. A class acts as a template. You can create many objects with the template, all of them will be similar to the original class. When you instantiate a class, you create an object based on the class. If your class describes a commercial airplane in an airline's fleet, for example, you can instantiate a 747 with it, a 767, or a 777. You use the same template to create different airplanes. You construct different airplanes by giving them different traits during their instantiation.

A class includes properties and functions. They are the members of the class. A class's functions are similar to regular JavaScript functions. A class's functions are affiliated only with their class. They are the class's member functions. One of the member functions is very special--it is the constructor function. Here is an example class that constructs airplanes:

class Airplane {
  var model: int;
  
  function Airplane() {
    model = 767;
  }
} 

A class's constructor function has the same name as its class. All airplanes instantiated using the Airplane class will be 767:

var firstJet : Airplane;
var secondJet : Airplane;
firstJet = new Airplane();
secondJet = new Airplane();

Both jets in the listing are 767 because there's only one constructor that initializes the jet's model to 767. A class can have more than one constructor, as shown in the following listing:

class Airplane {
  var model: int;
  
  function Airplane() {
    model = 767;
  }
  
  function Airplane(newModel : int) {
    model = newModel;
  }
} 

You can create a 767 using the class's default constructor:

var thirdJet : Airplane;
thirdJet = new Airplane();

You can also create a 777 by calling the second constructor (with the parameter):

var fourthJet : Airplane;
fourthJet = new Airplane(777);

You can expose a class's property simply by creating a member variable as above, and allowing other code to directly manipulate it:

class Airplane {
  var model: int;
  
  function Airplane() {
    model = 767;
  }
} 

var fifthJet : Airplane;
fifthJet = new Airplane();
fifthJet.model = 747;

This approach works fine, but it is not recommended to expose a class's variables to foreign code. It's better to create accessor functions. These are member functions that expose a class's properties as if they are member variables. These member functions are the set and get functions:

class Airplane {
  var model: int;
  
  function Airplane() {
    model = 767;
  }
  
  function get JetModel() : int {
    return model;
  }
  
  function set JetModel(newModel : int) {
    model = newModel;
  }
} 

You set and get the jet's model with the JetModel member function. Notice that the member function (JetModel) is different from the member property (model). You set the jet's model as follows:

var sixthJet : Airplane;
sixthJet = new Airplane();
sixthJet.JetModel = 757;

You get the jet's model similarly:

var seventhJet : Airplane;
var myModel : int;
seventhJet = new Airplane();
myModel = seventhJet.JetModel;

The class object is part of ECMAScript Edition 4. We will cover classes more extensively in one of our next columns.


Next: A Final Word

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs

webref The latest from WebReference.com Browse >
Building a Banking Application Home Page with OOP · Mixing Scripting Languages · Review: phpFox, a Social Networking CMS with all the Bells and Whistles
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Enterprise 2.0: Social Networking in the Cloud · BroadSoft Marketplace Hastens Pace of Telephony Innovation · Review: HTC Hero for Sprint


Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: April 22, 2002
Revised: April 22, 2002

URL: http://www.webreference.com/js/column108/6.html