Primitive wrapper class in Java: Difference between revisions

Content deleted Content added
Chealer (talk | contribs)
m remove link on "Wrapper classes" (not discussed in object type)
Adding intentionally blank description, overriding Wikidata description "computer term referring to a Java class in object-oriented programming"
 
(43 intermediate revisions by 35 users not shown)
Line 1:
{{Short description|none}}
A '''primitive - wrapper class''' in the [[Java (programming language)|Java]] and [[ActionScript]] programming languages is one of eight classes provided in the {{Javadoc:SE|package=java.lang|java/lang}} [[Java package|package]] to provide [[object-oriented programming|object]] [[Method (computer science)|methods]] for the eight [[primitive type]]s. All of the primitive wrapper classes in Java are [[immutable object|immutable]]. [[Java Platform, Standard Edition|J2SE]] 5.0 introduced [[Boxing (computer science)#Autoboxing|autoboxing]] of primitive types into their wrapper object, and automatic unboxing of the wrapper objects into their primitive value—the implicit conversion between the wrapper objects and primitive values.
In [[object-oriented programming]], a '''wrapper class''' is a [[class (computer programming)|class]] that [[Encapsulation (computer programming)|encapsulates]] [[data type|types]], so that those types can be used to create [[object (computer science)|object]] [[instance (computer science)|instances]] and [[method (computer programming)|methods]] in another class that needs those types. So a '''primitive wrapper class''' is a wrapper class that encapsulates, hides or ''wraps'' data types from the eight [[primitive data type]]s,<ref>S. J. Chapman, ''Introduction to Java'', Prentice Hall, 1999.</ref> so that these can be used to create instantiated objects with methods in another class or in other classes.<ref name=murach>J. Murach, ''Murach's Java Programming'', 4th Edition, Mike Murach and Associates, Inc., 2011.</ref><ref>J. R. Hubbard, ''Programming with Java'', Schaum's Outline Series/McGraw Hill, 1998.</ref> The primitive wrapper classes are found in the [[Java API]].
 
WrapperPrimitive wrapper classes are used to represent primitive values whencreate an {{Javadoc:SE|java/lang|Object}} isthat required.needs Theto wrapperrepresent classesprimitive aretypes used extensivelyin with {{Javadoc:SE|java/util|Collection}} classes (i.e., in the Java API), in the {{Javadoc:SE|package=java.util|java/util}} package and with the classes in the {{Javadoc:SE|package=java.lang.reflect|java/lang/reflect}} [[Reflection (computer science)|reflection]] package. Collection classes are Java API-defined classes that can store objects in a manner similar to how data structures like arrays store primitive data types like '''int''', '''double''', '''long''' or '''char''', etc.,<ref name=murach/> but arrays store primitive data types while collections actually store objects.
 
The primitive wrapper classes and their corresponding primitive types are:
 
:{| class="wikitable"
! Primitive type !! Wrapper class !! Constructor Argumentsarguments
|-
| <code>byte</code> || {{Javadoc:SE|java/lang|Byte}} || <code>byte</code> or <code>String </code>
Line 25 ⟶ 26:
|}
 
==The difference between wrapper classes and primitive types==
<div style="text-align:justify;">
'''Don't get confused'''<br/>
The term mentioned ''Primitive Wrapper Classes'' '''does not''' mean that Wrapper classes are Primitive types in Java. It should be read this way, a class that wraps a primitive type. Wrapper classes can be used to store the same value as of a primitive type variable but the instances/objects of wrapper classes themselves are ''Non-Primitive''. We cannot say that Wrapper classes themselves are Primitive types. They just wrap the primitive types.
</div>
 
Primitive wrapper classes are not the same thing as primitive types. Whereas variables, for example, can be declared in Java as data types '''double''', '''short''', '''int''', etc., the primitive wrapper classes create instantiated objects and methods that inherit but hide the primitive data types, not like variables that are assigned the data type values.<ref name=murach/>
The <code>Byte</code>, <code>Short</code>, <code>Integer</code>, <code>Long</code>, <code>Float</code>, and <code>Double</code> wrapper classes are all [[subclasses]] of the {{Javadoc:SE|java/lang|Number}} class.
 
TheTherefore, termthe mentionedterm ''Primitive Wrapperwrapper Classesclass'' '''does not''' mean that Wrapperwrapper classes are Primitiveprimitive types in Java. It should be readunderstood thisto way,be a class that wraps a primitive typetypes. Wrapper classes can be used to store the same value as of a primitive type variable but the instances/objects of wrapper classes themselves are ''Non-Primitive''. We cannot say that Wrapper classes themselves are Primitive types. They just wrap the primitive types.
The wrapper classes <code>BigDecimal</code> and <code>BigInteger </code> are not one of the primitive wrapper classes but are immutable.<ref>{{cite web
 
The <code>Byte</code>, <code>Short</code>, <code>Integer</code>, <code>Long</code>, <code>Float</code>, and <code>Double</code> wrapper classes are all [[subclassessubclass (computer science)|subclass]]es of the {{Javadoc:SE|java/lang|Number}} class.
 
The wrapper classes <code>BigDecimal</code> and <code>BigInteger </code> are not one of the primitive wrapper classes but are immutable.<ref>{{cite web
| url = http://www.javaranch.com/journal/2003/04/immutable.htm
| title = Mutable and Immutable Objects: Which classes are Immutable?
| author = David O'Meara
| date = April 2003-04
| publisher = Java Ranch
| accessdate = 2012-05-14
Line 47 ⟶ 49:
| quote = Immutable arbitrary-precision integers.
}}</ref>
 
== Void ==
 
Although it is not a wrapper class, the {{Javadoc:SE|java/lang|Void}} class is similar in that it provides an object representation of the [[void type|<code>void</code>]] return. "The <code>Void</code> class is an uninstantiable placeholder class used by the {{Javadoc:SE|package=java.lang.reflect|java/lang/reflect}} [[application programming interface|API]] to hold a reference to the {{Javadoc:SE|java/lang|Class}} object representing the [[Java keyword]] <code>void</code>."[http://docs.oracle.com/javase/6/docs/api/java/lang/Void.html (Javadoc for Void)]
 
== Atomic wrapper classes ==
Line 78 ⟶ 76:
* [[Java (programming language)|Java programming language]]
* [[Java syntax]]
* [[Java compiler]]
 
== References ==
Line 83 ⟶ 82:
 
<!--Categories-->
[[Category:Java (programming language)]]