Autoboxing And Unboxing In Java

41
Autoboxing and Unboxing in JAVA Chathuranga Kasun Bamunusingha

Transcript of Autoboxing And Unboxing In Java

Autoboxing and Unboxing in JAVAChathuranga Kasun Bamunusingha

#

Quick Review of Java Java is an oo languageCan view everything as an object

Quick Review of Java Java is an oo languageCan view everything as an object

There are two type of variables in javaPrimitive (int,char,bool..)Object

Quick Review of Java Java is an oo languageCan view everything as an object

There are two type of variables in javaPrimitive (int,char,bool..)Object

Simple data types can be converted into objectsUsing Wrapper classes

Quick Review of Java Wrapper classes wrap primitive data types and give it an object appearanceInt -> Integer Char -> Character

Use of wrapper classes To convert simple data types into objectsTo convert strings into relavent data typesExInteger.parseInt(100);

Quick Review of Java Wrapper classes wrap primitive data types and give it an object appearanceInt -> Integer Char -> Character

Quick Review of Java Wrapper class provides methods to wrap and unwrap objectsEx: Wrap -> Integer k=new Integer(100);Unwrap -> int a=k.intValue();

It simply like a Chocolate!Manufacture wrap the chocolate with some paper(wrapper)User takes it and remove the paper(wrapper) and eat

Autoboxing and UnboxingAutoboxingWrap a primitive data type into its object type

Autoboxing and UnboxingAutoboxingWrap a primitive data type into its object type

UnboxingUnwrap(get the primitive value) from its relevant object

Autoboxing and UnboxingAutoboxingWrap a primitive data type into its object type

UnboxingUnwrap(get the primitive value) from its relevant object

I made some mistakes!!!!!!How the Auto parts comes to the picture! You just wait ;)

Back To Java HistoryIm going to write some code in java 4.0!

Back To Java HistoryNow I want to add 3 into listOfNumbers arraylist

listOfNumbers.add(3);

Back To Java HistoryNow I want to add 3 into listOfNumbers arraylist

listOfNumbers.add(3);This gives me an ERROR!!!

Back To Java HistoryNow I want to add 3 into listOfNumbers arraylist

listOfNumbers.add(3);This gives me an ERROR!!!

There is no add(int) method , only add(object) method

Back To Java HistoryNow I want to add 3 into listOfNumbers arraylist

listOfNumbers.add(3);This gives me an ERROR!!!

There is no add(int) method , only add(object) method

listOfNumbers.add(new Integer(3));

Back To Java HistoryIf I need to take that number 3 back, then

Back To Java HistoryIf I need to take that number 3 back, then

It comes out as type of ObjectInteger one = (Integer) listOfNumbers.get(0);

Back To Java HistoryIf I need to take that number 3 back, then

It comes out as type of ObjectInteger one = (Integer) listOfNumbers.get(0);

Finally you can get the primitive out of the Integerint intOne = one.intValue();

What is the problem mate!In every time you (the programmer) has to do the wrapping(boxing) and unwrapping (unboxing) manually

What is the problem mate!In every time you (the programmer) has to do the wrapping(boxing) and unwrapping (unboxing) manuallyIt makes coding life bit difficultIt can be introduce bugs in the program

What is the problem mate!In every time you (the programmer) has to do the wrapping(boxing) and unwrapping (unboxing) manuallyIt makes coding life bit difficultIt can be introduce bugs in the program

How to solve this ?

What is the problem mate!In every time you (the programmer) has to do the wrapping(boxing) and unwrapping (unboxing) manuallyIt makes coding life bit difficultIt can be introduce bugs in the program

How to solve this ?If compiler do this automatically for the programmer then life will be easy!That exactly java 5 has done!We called it Autoboxing and unboxing

Back To Java 5Lets do the previous example in java 5

Back To Java 5Lets do the previous example in java 5

Make an ArrayList of type IntegerArrayList listOfNumbers = new ArrayList();

Back To Java 5Lets do the previous example in java 5

Make an ArrayList of type IntegerArrayList listOfNumbers = new ArrayList();

Just add it!

Back To Java 5Lets do the previous example in java 5

Make an ArrayList of type IntegerArrayList listOfNumbers = new ArrayList();

Just add it!listOfNumbers.add(3);Here converting int 3 into Integer object has been done by the compiler itself (Autoboxing)Now Auto word comes into the picture!

Back To Java 5If I need to get the int value from Integer object ,

Back To Java 5If I need to get the int value from Integer object ,int num = listOfNumbers.get(0);Here getting int value from Integer object is done by the compiler itself

Back To Java 5If I need to get the int value from Integer object ,int num = listOfNumbers.get(0);Here getting int value from Integer object is done by the compiler itselfThat is intValue() method is called by the compilerWe called it unboxing!

Lets Have Fun With Autoboxing and Unboxing!

As method arguments

Lets Have Fun With Autoboxing and Unboxing!

As method argumentstakeNumber method takes an Integer object as input parameter. But we can use int also!

Lets Have Fun With Autoboxing and Unboxing!

Return values

Lets Have Fun With Autoboxing and Unboxing!

Return valuesgiveNumber method return int. but it can be used int or Integer type!

Lets Have Fun With Autoboxing and Unboxing!

Boolean expressions

Lets Have Fun With Autoboxing and Unboxing!

Boolean expressions

Lets Have Fun With Autoboxing and Unboxing!

Operations on numbersCompiler do the trick!

Lets Have Fun With Autoboxing and Unboxing!

Assignments

Lets Have Fun With Autoboxing and Unboxing!

Assignments

End OF The Journey

Thats all about autoboxing and unboxing!

End OF The Journey

Thats all about autoboxing and unboxing!

Any questions ???

End OF The Journey

Thats all about autoboxing and unboxing!

Any questions ???

Thank you!