g.drawline ad esempio che vuol dire?
Significa invocare il metodo "drawLine" (con i relativi parametri) sull'oggetto g, istanza della classe Graphics.
Per vedere cosa fa questo metodo devi leggerti le relative API, e puoi scoprire che nello specifico il metodo "drawLine(x1,y1,x2,y2)" è di tipo "void", per cui non restituisce nessun oggetto, e si occupa di disegnare una linea che parte dal punto (x1, y1) e arriva al punto (x2, y2).
Più in generale un simbolo seguito da un punto e poi da un metodo vuol sta a significare l'oggetto che si ottiene applicando quel metodo all'oggetto rappresentato dal simbolo.
Questa cosa è, in generale, sbagliata perché non è detto che tutti i metodi restituiscano degli oggetti. In generale una cosa del tipo "nomeVariabile.nomeMetodo(eventualiParametri);" significa: "applica il metodo
nomeMetodo sull'oggetto
nomeVariabile.
Supponiamo di avere un oggetto A ed un metodo B
...
Ma io ho letto che i metodi in genere non agiscono su oggetti ma fanno delle operazioni creando eventualmente degli oggetti che si memorizzano nello heap
Questo è, in generale, sbagliato. Per farti un esempio:
public class Contatore {
private int stato;
public void incrementa(){
stato++;
}
}
...
public static void main(String args){
Contatore c = new Contatore();
c.incrementa();
}
Quando io eseguo "incrementa" non creo un nuovo oggetto, ma vado ad agire sull'oggetto che ho creato precedentemente.
Per vedere la semantica di un metodo devi leggerti il codice sorgente oppure fidarti di ciò che le API dicono.