In: Computer Science
//Using Java language
Write a copy instructor for the following class. Be as efficient as possible.
import java.util.Random;
class Saw
{
private int x;
private Integer p;
//------------------------------------------
public Saw()
{
Random r = new Random();
x = r.nextInt();
p = new Integer(r.nextInt());
}
}
there is no concept called copy instructor java have only copy constructor.
A copy constructor is a constructor that creates a new object using an existing object of the same class and initializes each instance variable of newly created object with corresponding instance variables of the existing object passed as argument.
Saw.java
import java.util.Random;
public class Saw {
private int x;
private Integer p;
//default (Normal) constructor
public Saw(){
Random r=new Random(); //Random is a class used for genrating random numbers
x=r.nextInt();
p=new Integer(r.nextInt());
}
//copy constructor
//it will create a new obj by using already existing obj
public Saw(Saw saw){
System.out.println("copy constructor called");
x=saw.x;
p=saw.p;
}
// Overriding the toString of Object class
@Override
public String toString() {
return "Saw{" +
"x=" + x +
", p=" + p +
'}';
}
}
Demo.java
import java.util.*;
public class SDemo {
public static void main(String[] args) {
// create a object1 for Saw class it will call a default constructor
Saw object1=new Saw();
//printing the values object1
System.out.println(object1);
//creating object2 by using object1
// Following involves a copy constructor call
Saw object2=new Saw(object1);
//printing the values object2
System.out.println(object2);
}
}


"C:\Program Files Javaljdk1.8.0 121lbinljava.exe" Sawx-1358831207, p-1672367332) copy constructor called Sawx-1358831207, p-1672367332) Process finished with exit code O
"C:\Program Files Javaljdk1.8.0 121lbinljava.exe" Saw/XF-972383579, p= 11 7 3 6 4 4 7 51) copy constructor called Saw x-972383579, p-1173644751) Process finished with exit code O