Cloning in java with example
Cloning: Cloning is a technology to obtain exact copy of a
plant, a bird an animal or a human being. This cloning technology available
now.
Cloning in java: Obtaining the exact copy of an existing
object is called as cloning.
There are two types of cloning
·Shallow Cloning: In this type of cloning any modifications to the
original object will also modify the cloned object.
·Deep Cloning: In this type of cloning any modifications in the
original object will not modify the cloned object.
Deep
cloning or copy can be achieved through serialization. This may be fast to code
but will have performance implications.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | package com.javatbrains.cloning; class Employee implements Cloneable { int id; String name; Employee(int id, String name) { this.id= id; this.name= name; } void display() { System.out.println("Id = "+ id); System.out.println("Name = "+ name); } Employee myClone() throws CloneNotSupportedException { System.out.println("This is cloning method"); return(Employee) super.clone(); } } public class CloneDemo { public static void main(String[] args) throws CloneNotSupportedException { // Create an object naturally Employee emp = new Employee(10, "JavaTBrains"); emp.display(); // Create another object by cloning Employee emp1 = emp.myClone(); emp1.display(); } } OutPut: Id = 10 Name = JavaTBrains This is cloning method Id = 10 Name = JavaTBrains |
Which method is used in cloning?
By
using clone() method of java.lang.Object class.
·Implementing Cloneable interface will not have
any methods. Cloneable interface is a marker interface.
·clone() method is Object class. Object is the
super class.
·By writing the implements Cloneable the
programmer is indicating that class's objects are cloneable.
·An interface without any methods is called marker
interface or tagging interface. It specifies or indicates a special purpose for
the class objects.
·Marker interface just tell the compiler to that
the objects of the classes implementing the interfaces with no defined methods
need to be treated differently.
·Ex: Cloneable, Serializable
Do
not use Serialization if you do not have to. A common use of Serialization is
to use it to send an object over the network or if the state of an object needs
to be persisted to a flat file or a database.
The
objects stored in HTTP session should be serializable to support in-memory
replication of sessions to achieve scalability. Objects are passed in
RMI(Remote Method Invocation) across network using serialization.
What is the difference between
Observable and Observer?
Observable
is a class is used to create subclasses that other parts of our program can
observe. When an object of such a subclass undergoes a change, Observing
classes are notified. Observing classes must implement the Observer interface.
It will have more methods than Observer interface.
An
Observer is an interface which is useful for observing Observable object, and
must implement the Observer interface. This interface will define only one
method i.e. void update(Observable obs, Object arg). Here, obs is the object
being observed, and arg is the value passed by notifyObservers(). The update()
method is called when a change in the observed object take place.
Do you know?
Comments
Post a Comment