Qui non viene creato alcun "oggetto" (gli oggetti si istanziano con new NomeTipo() ). È semplicemente la definizione di una variabile, con un valore iniziale nullo.
Ok
Sì, è un metodo, quello statico definito appena più sotto.
Il metodo è static ("di classe"), non serve quindi un oggetto. E il metodo è nella stessa classe in cui fai la invocazione, quindi non è necessario fare ProgrammaEccezioni.Test1( .... ) ma solo Test1( .... )
Sì, viene restituito l'oggetto FileInputStream che nel main viene assegnato a fileDaLeggere1.
Test1 ripeto che è un metodo static, appartiene alla classe. Ed è public, qualunque altra classe esterna potrebbe usarlo invocando ProgrammaEccezioni.Test1( .... ). Visto che lo stai invocando dal main nella stessa classe, non serve la qualifica con il nome della classe.