Originariamente inviato da arche3dstudio
allora,le classi sono i mattoni di un programma java,essa racchiude tutti gli oggetti,ed ogni oggetto ha le sue proprietà che chiamiamo metodi.Ho provato a riassumerlo in modo molto semplice,x aiutarmi a fissarlo,anche se nn ho capito cosa sono le istanze,in flash sono una copia dipendente dal simbolo principale,è lo stesso pure in java?
Facciamo un esempio pratico.

Vogliamo rappresentare una entità reale, una persona. Creo quindi una classe Persona:
codice:
public class Persona
{
    private String nome;
    private String cognome;

    public Persona (String nome, String cognome)
    {
        this.nome = nome;
        this.cognome = cognome;
    }
    
    public void stampa ()
    {
        System.out.println ("nome=" + nome ", cognome=" + cognome);
    }
}
La classe ha 2 variabili di istanza (gli attributi) che sono 'nome' e 'cognome'. In più ha un metodo stampa() che permette di stampare in output il nome/cognome.

Adesso voglio creare 2 oggetti che rappresentano 2 persone diverse.

Persona pers1 = new Persona ("Bill", "Gates");
Persona pers2 = new Persona ("Steve", "Jobs");

Cosa ho fatto?? Ho creato 2 istanze della classe Persona. Ho 2 oggetti distinti, referenziati dalle variabili 'pers1' e 'pers2' e ognuno dei 2 oggetti ha dei valori specifici nei suoi attributi (che sono le variabili di istanza nome e cognome).

Potrei ad esempio voler stampare a video i dati della persona. Quindi invoco sull'oggetto che voglio il metodo stampa():

pers1.stampa ();

per ottenere in stampa:
nome=Bill, cognome=Gates

Nota finale: quel public Persona (String nome.....) non è propriamente un metodo ma un costruttore, serve per inizializzare l'oggetto.

Più chiaro adesso?