1) non ho capito la cosa sul metodo omonimo.. se ti riferisci alla riga "printer p = new printer()", ho istanziato normalmente un oggetto di classe "printer" chiamando il suo costruttore di default "new printer()"

2) un metodo statico lo puoi chiamare con nomeClasse.metodo() senza dover prima istanziare un oggetto di quella classe (come ho fatto io nel codice)

3) si, avrebbe funzionato