groessereBox gibt eine Box-Instanz zurück, ein Konstruktor garnichts, der wird einfach nur aufgerufen wenn du mit new eine neue Instanz anlegst, oder eine Subklasse angelegt wird. Mit der Fabrikmethode meint er soetwas wie BorderFactory.createBevelBorder(), eben eine statische Methode. Alternativ wird das, was du hast öfters als eigener Konstruktor (Copy-Konstruktor) angelegt. Dabei bleiben die Daten aber idR. unverändert, eben nur um zu kopieren. Dabei schwärmen die einen aber dafür, die anderen sind total abgeneigt. Ich habe dabei aber selbst noch nie einen wirklich großen Grund gesehen, ihm zu verwenden oder abzulehnen, ich selbst überschreibe eigendlich fast immer nur die Methode clone().
Der 2. Absatz ist ganz einfach erklärt, wenn du System.out.print/ln(Object obj) aufrufst, wird der String, den du bei instance.toString() zurückbekommst ausgegeben. Das ist standartgemäß der Klassenname @ Hash. Eine Verwendung dafür kenne ich aber nicht, ist vielleicht auch nur so eine art Platzhalter.
Ich selbst hatte zwar nie einen Lehrer, aber bei dem was ich alleine in den letzten 3 Tagen hier gelesen habe, habe ich das Gefühl, das entweder die Lehrer keinen Bock haben euch was beizubringen, oder ihr Informatikschulen besucht, aber eigendlich keine Lust habt etwas zu lernen. Nicht persönlich nehmen, ist nur mein Eindruck.