CSC/ECE 517 Fall 2011/ch3 3h ss: Difference between revisions
No edit summary |
(→Java) |
||
Line 34: | Line 34: | ||
In Java, there are 8 primitive types: byte, short, int, long, float, double, char and boolean | In Java, there are 8 primitive types: byte, short, int, long, float, double, char and boolean | ||
For each of these primitive types, Java provides wrapper classes to create primitive objects which wrap the primitive types. On primitive | For each of these primitive types, Java provides wrapper classes to create primitive objects which wrap the primitive types. On primitive objects, not only the operations supported by primitive values can be invoked but also the operations which cannot be invoked on primitive values. | ||
objects, not only the operations supported by primitive values can be invoked but also the operations which cannot be invoked on primitive | |||
values. | |||
In Java, the primitve values are not implicitly converted to primitive objects. Instead, methods are provided for doing explicit conversion. | In Java, the primitve values are not implicitly converted to primitive objects. Instead, methods are provided for doing explicit conversion. | ||
Line 63: | Line 59: | ||
double Double | double Double | ||
char Charcter | char Charcter | ||
=== JavaScript === | === JavaScript === |
Revision as of 23:14, 6 October 2011
Introduction
In any programming language, the data type refers to the class of data which contains specific type or range of values. Data types are used along with variables used in the program. The data type tells us what kind of values the variable can store, what is the range of the values and how much space the values take in memory etc.
The primitive data types refer to the built-in data types which are supported by the programming language. Often 'data types' and 'primitive data types' are used interchangeably.
Many object-oriented programming languages provide support for primitive data types while some object-oriented programming languages provide support for primitive objects along with primitive types. Primitive objects refer to the objects of built-in classes which provide the same functionality or rather more functionality than the primitive types. Some object-oriented programming languages provide support for only primitive objects.
The common built-in data types are integers, floating point numbers, characters, strings and booleans.
Different object-oriented programming languages implement these primitive data types and primitive objects in different manner.
Primitive objects in different OO languages
Ruby
Since Ruby is a pure object oriented language, everything in Ruby is an object. Hence, all primitive types such as integers, floating point numbers, strings, are objects of a built-in class. All integers are primitive objects of either class Fixnum or Bignum. e.g. 10.class returns Fixnum. This indicates that 10 is converted into an object of type Fixnum. A numeric literal with a decimal point and/or an exponent is a primitive object of Float. e.g. 7.45.class returns Float. This indicates that 7.45 is converted into an object of type Float. Single quoted literals and double quoted literals are primitive objects of String. e.g. 'hi'.class and "hello".class both return String. This indicates that 'hi' and "hello" are both converted into an object of type String.
Since all primitive types in Ruby are objects, we should be able to call methods of the Object class on them. Let us demonstarte the same for integer and float using the following example:
a=10 puts a.to_f b=20.5 puts b.to_i
Output: 10.0 20
Java
In Java, there are 8 primitive types: byte, short, int, long, float, double, char and boolean
For each of these primitive types, Java provides wrapper classes to create primitive objects which wrap the primitive types. On primitive objects, not only the operations supported by primitive values can be invoked but also the operations which cannot be invoked on primitive values.
In Java, the primitve values are not implicitly converted to primitive objects. Instead, methods are provided for doing explicit conversion.
Example:
int i = 10; int ii = 20; Integer I = new Integer(i); Integer II = new Integer(ii); System.out.println(I+II); // prints 30 System.out.println(I.equals(II)); //prints false
The primitive objects are stored on heap in memory while the variables containing primitive values are stored on heap.
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Charcter
JavaScript
There are 5 primitive data types in JavaScript: string, number, boolean, null, undefined
For string, number and boolean values, there are corresponding primitive objects just like in Java which wrap the primitive values.
string String number Number boolean Boolean
In JavaScript, whenever a variable of a primitive type is defined, it is implicitly converted to a primitive object, so that a property can be accessed or a method can be invoked on that variable as if it is an object. After the method is processed, the primitive object is no longer needed and hence discared.
Consider the following examples:
var upperCaseString = "APPLE"; var lowerCaseString = upperCaseString.toLowerCase(); // value of lowerCaseString becomes "apple"
var s = "Hello" var len = s.length; // assigns value 5 to len