I am learning Java and found this article on stackoverflow.
So there are two classes:
public class Image {
...
public Image clone() {
Image clone = new Image(getMagicNumber(), getHeight(), getWidth(), getMax());
for (int i = 0; i < getHeight(); i++){
for (int j = 0; j < getWidth(); j++){
clone.setPixel(getPixel(i, j), i, j);
}
}
return clone;
}
}
And than there is this class:
public class Filter {
public Filter() {
}
public Image linearFilter(Image image, float[][] kernel) {
Image filtered = image.clone();
...
return filtered;
}
}
I am used to do X instancename = new X(); for creating an instance, where X is the name of the class. Are there different ways for creating an instance? For example in the Filter class: How is Image filtered = image.clone(); creating an instance? In order to create an instance I thought on both sides of the "equation" X has to be equal. What I mean by this: Image filtered = new Image();. I don't understand how Image filtered = image.clone(); is creating a new instance. Can someone explain?
Image, you would see thatImage#cloneor one of its called methods would be the one to callnew Image(...). Cloning an image simply hides the logic needed to create a new image while preserving the clone-semantics.clonewhich creates an instanceA name = new A();you can just create an instance in B by doingType newname = variable.clone()?