Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [JAVA] Classi Oggetti

  1. #1

    [JAVA] Classi Oggetti

    Ciao... sn un utente all eprime armi in java.. volevo sapere qual'è la differenza sostanziale in java!

    Grazie!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    La differenza fra Classe e Oggetto? E' esattamente quella di un qualsiasi altro linguaggio di programmazione.

    La classe è il TIPO che identifica un Oggetto.

    L'Oggetto è la "variabile", intesa come ISTANZA di quell'oggetto.

    Esempio:

    Figura può essere una classe.

    Di questa classe io posso istanziare (creare) infiniti Oggetti: li chiamo, per esempio, f1, f2, f3...

    Figura è la classe, ossia ciò che mi identifica il tipo di un oggetto (come per le variabili primitive, ci sono interi, caratteri, numeri reali, ecc)

    f1, f2, f3... sono oggetti della classe Figura.

    Nella classe si specificano quali sono le proprietà ed i metodi con cui manipolare queste proprietà. Queste proprietà e questi metodi, poi, diventano parte integrante di ciascun oggetto di quella classe, ossia ogni oggetto di quella classe avrà a disposizione quelle proprietà e quei relativi metodi, propri della classe a cui appartengono.

    Esempio su quello di prima:
    La classe Figura può avere le seguenti proprietà (campi):

    - Posizione X del baricentro
    - Posizione Y del baricentro
    - Colore del bordo
    - Numero facce

    e questi metodi:

    - Calcola area
    - Calcola perimetro
    - Sposta a destra
    - Sposta a sinistra

    Ciascun oggetto di Figura (f1, f2, f3...) ha tutte le proprietà ed i metodi sopra descritti (per cui esistono Figure con un diverso numero di lati, diverse posizioni e diverse aree e perimetri [tanti oggetti di Figura, appunto] ).

    Spero di essere stato chiaro...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    ok... capito ma la classe è una cosa astratta cioè che io s'ho che appartiene a quella classe o bisogna inserirla mentre edito un prog?

    Ciao grazie


  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    In Java qualsiasi cosa è una classe.

    In generale, invece, in un linguaggio OO come C++ la classe rappresenta un tipo di dato.

    E' ovvio che se devi definire una classe la devi prima scrivere, a meno che a te non serva utilizzare oggetti di una classe che qualcun'altro ha già scritto per te.

    Per esempio, se devi definire una classe per la figura, quella dell'esempio precedente, dovresti scrivere qualcosa del genere:
    codice:
    public class Figura {
       private int posizione_X; // La posizione X del baricentro
       private int posizione_Y; // La posizione Y del baricentro
       private int num_lati // Numero di lati
       private Color colore_bordo; // Colore del bordo
    
       public Figura() { // Costruttore della classe
          // inizializzazioni
       }
    
       // metodo per calcolare l'area
       public int calcolaArea() {
          ... // Tutte le operazioni
       }
    
       // metodo per calcolare il perimetro
       public int calcolaPerimetro() {
          ... // Tutte le operazioni per il calcolo del perimetro
       }
    
       // metodo per spostare a dx l'oggetto
       public void spostaADestra(int punti) {
          ... // Tutte le operazioni per spostarlo a destra
       }
    
       // metodo per spostare a sx l'oggetto
       public void spostaASinistra(int punti) {
          ... // Tutte le operazioni per spostarlo a sinistra
       }
    }
    Poi, nel tuo programma dovresti dichiarare tanti oggetti quanti sono quelli di cui hai bisogno di tipo Figura...
    codice:
       Figura f1 = new Figura(); // Questo è un oggetto di tipo Figura
       Figura f2 = new Figura(); // Anche questo è un oggetto di tipo Figura
    ... e magari, usarne i metodi...
    codice:
       int area1 = f1.calcolaArea();
       int perimetro2 = f2.calcolaPerimetro();
       // Sposto l'oggetto f1 a destra di 20 punti
       f1.spostaADestra(20);
    In Java, però, ogni programma E' una classe. Quindi, per avere un programma bisogna scrivere una classe, magari che fa uso di altre classi, scritte da te oppure già scritte da altri (come le API).

    Comunque, direi che avere un libro che spiega esattamente le basi della programmazione Object Oriented e, magari, anche di Java è utile se si vuole imparare a programmare in questo linguaggio.

    Ce ne sono di disponibili anche gratuitamente in internet (scaricabili): i più importanti e rinomati sono

    - Thinking in Java ( http://www.planetpdf.com/mainpage.asp?WebPageID=314 )
    - Java mattone dopo mattone ( http://www.java-net.it/jmonline )
    - MokaBook (http://www.mokabyte.it ) [registrazione gratuita]


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Sinteticamente possiamo dire che una classe è un modello strutturale (una struttura) su cui si basa la creazione (istanziazione) degli oggetti che sono istanza di quella classe.

    La classe ha uno stato e un comportamento. Lo stato è dato da tutte le variabili dichiarate all'interno della classe, mentre il comportamento è dato da tutti i metodi dichiarati, che non sono altro delle funzioni delle operazioni che possono essere invocati solo su oggetti che sono istanza di quella classe, ovvero oggetti che sono stati creati sul modello di quella classe.

    Un linguaggio OO (Java, C++ ...) deve avere come concetto principale quello di classe e inoltre ogni tipo di dato deve derivare da una classe. quindi qualsiasi oggetto o variabile che sia sarà sempre istanza di una classe.

    spero di esser stato chiaro, comunque come dice LeleFT è molto meglio se ti prendi un bel libro di Programmazione orientata agli oggetti per capire meglio questi concetti, che sono i più banali in questo tipo di linguaggi, io li ho imparati più o meno ormai perchè sono arrivato alla fine di un corso che è durato tutto il sememstre, con un professore che è un vero mostro!

    ciao ciao
    tommisceddu
    www.matteosteri.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.