Partiamo dal codice:

codice:
import java.applet.*;
import java.awt.*; 

public class Obj extends Applet
{ 
 public void paint (Graphics gra) 
 {
  setBackground(Color.blue); 
  gra.drawString("Ciao a tutti",50,50);
 }

}
La prima cosa che fa questo programmino è quella di importare i package di applet e awt.
Successivamente vado a scrivere la classe che chiamerò Obj e gli dico di fargli ereditare la classe Applet (che è l'unica contenuta nel package applet). Perchè?? Cioè, il mio dubbio è perchè devo andare a fare l'ereditarietà di una classe quando l'ho gia importata??

Successivamente vado a scrivere il metodo paint (che dovrebbe essere contenuto nel package awt, giusto?), questo metodo prevede come parametro una oggetto 'gra' di tipo Graphics (anche la classe Graphics è contenuta in awt, giusto?).

All'interno del metodo ci sono sono due istruzioni (anch'esse contenute nel package awt) ovvero:
setBackground(Color.nome_color) e gra.drawString("Stringhe da visualizzare",50,50);

Ora, quello che mi chiedo è come mai la prima istruzione che ho scritto non necessita dell'oggetto + . + nome metodo mentre la seconda si.

Ho provato a cercare nella documentazione, ma sinceramente non ho capito bene come faccio a capire quando si verifica questa differnza di scrittura.

Aiutatemi, please