2012-12-08 16 views
6

Una classe è un'associazione di metodi e variabili in una singola unità.
Un oggetto è un'istanza di una classe.Qual è la differenza tra classi e istanze di oggetti?

Queste sono definizioni per classi e oggetti nei libri di programmazione. Il mio amico ha detto che una classe è un progetto di un oggetto. Un oggetto è una vera "cosa" di un progetto. Ha fornito un esempio: se Company è una classe, INFOSYS, CTS e TCS sono oggetti. Ogni volta che penso a classi e oggetti, queste definizioni mi confondono. Se il canale è una classe, quali sarebbero gli oggetti per la classe? Se l'acqua è una classe, quali sarebbero gli oggetti di classe? Puoi chiarire?

+2

Si dovrebbe leggere un buon libro e lavorare con alcuni esempi ... – home

+0

Il tuo amico ha torto. Le classi stesse possono essere considerate oggetti. –

+1

Ma solo in alcune lingue ...per prima cosa, è meglio scendere prima di affrontare il problema. – Sheena

risposta

11

Se canale è una classe, Start Sports, BBC e ESPN sono i suoi oggetti. Se l'acqua è una classe, "Acqua di calce fresca" e "Zuppa" sono i suoi oggetti.

Sebbene si possa trovare questa spiegazione vaga, questa è la risposta che potrei pensare.

Ecco come è possibile conoscere e distinguere le classi:

Diciamo che avete una classe "CAR"

I suoi oggetti sono Hyundai, Ford, Suzuki. Avrà gli stessi metodi ma disegni differenti -> questo è il modo in cui puoi collegare oggetti e classi con il mondo reale.

+0

grazie per il vostro chiarimento. Se Channel è un obiettare quale sarebbe una classe? –

+0

L'ho già menzionato nella mia risposta per favore leggilo. Se CHannel è l'oggetto ESPN, START SPORTS, TEN SPORTS, BBC, CNBC ecc. Sono i suoi oggetti –

1

Ti darò una spiegazione classica, puoi trovare diverse versioni di questo dappertutto.

Una classe è come un progetto. Diciamo che vuoi costruire una macchina, la prima cosa di cui avresti bisogno è un piano, questa è la classe. Il piano descriverà "metodi" come brake e hoot. Descriverà anche i vari componenti dell'auto. Queste sono variabili.

Un oggetto auto è un'istanza di una classe di auto. Puoi avere molti di questi per una classe di auto.

Ad esempio:

class Car: 
    def __init__(self,color): 
     self.color = color 

    def hoot(self): 
     "do stuff" 


red_car = Car('red') 
red_car.hoot() 
blue_car = Car('blue') 
blue_car.hoot() 

Ora, a seconda della lingua che si sta utilizzando le classi stessi possono essere oggetti (questo è il caso in Python). Pensalo in questo modo: tutti i progetti hanno alcune cose in comune. Quella roba comune è descritta nella classe del modello (che è di per sé un progetto).

Poi sul punto di 'acqua' come una classe si può avvicinare in alcuni modi a seconda di cosa si vuole fare:

modo 1:

preferisce avere una classe chiamata Liquid con le variabili descrivendo cose come viscosità, odore, densità, volume, ecc. L'acqua sarebbe un esempio di questo. Quindi sarebbe il succo d'arancia

modo 2:

dire che stavano mettendo insieme un gioco con un gruppo di blocchi che si sarebbero costituiti da terreni diversi. Potresti quindi avere classi come Grass, Water, Rock, ecc. (Pensa a Minecraft). Quindi puoi avere un'istanza di classe d'acqua (un oggetto d'acqua) che occupa una posizione specifica sulla mappa.

0

Nel mondo reale, troverete spesso molti singoli oggetti tutti dello stesso tipo. Possono esistere migliaia di altri canali, tutti della stessa marca e modello. Ogni canale è stato creato dalla stessa serie di progetti e quindi contiene gli stessi componenti. In termini orientati agli oggetti, diciamo che il tuo canale è un'istanza della classe di oggetti conosciuta come canale. Una classe è il modello da cui vengono creati i singoli oggetti.

class Channel { 

    ChannelType type = 0; 
    int employeeCount = 0; 


    void setType(ChannelType newType) { 
     type = newValue; 
    } 

    void addEmployer(int increment) { 
     employeeCount= employeeCount+ increment; 
    } 

    void removeEmployer(int decrement) { 
     employeeCount= employeeCount- decrement; 
    } 

    void printStates() { 
     System.out.println("type :" + 
      type + " employee count:" + employeeCount); 
    } 
} 

Il design di questa classe si basa sulla discussione precedente degli oggetti Canale. I campi typr, employeeCount rappresentano lo stato dell'oggetto e i metodi (setType, addEmployer, removeEmployer, ecc.) Definiscono la sua interazione con il mondo esterno.

Avrete notato che la classe Channel non contiene un metodo principale. Questo perché non è un'applicazione completa; è solo il progetto per i canali che potrebbero essere utilizzati in un'applicazione. La responsabilità di creare e utilizzare nuovi oggetti di Chennel appartiene ad un'altra classe della tua applicazione.

class Channel Demo { 

    public static void main(String[] args) { 

     // Create two different 
     // Channel objects 
     Channel BBC= new Channel(); 
     Channel NTV = new Channel(); 

     // Invoke methods on 
     // those objects 
     BBC.setType(channeltype.NEWS); 
     BBC.addEmployer(500); 
     BBC.printStates(); 

     BBC.setType(channeltype.SPORT); 
     BBC.addEmployer(300); 
     BBC.printStates(); 


    } 
} 

L'uscita di questo test di stampa per i due canali:

Tipo: NEWS conteggio dipendente: 500

Tipo: SPORT conteggio dipendente: 300

5

Una classe specifica il comportamento di le sue istanze.

Una classe è anche un'istanza di una classe (la classe per una classe è denominata "metaclass").

Una classe è un'astrazione. Puoi trovare una classe trovando proprietà generiche che si applicano a un gruppo di oggetti.

Poi una classe è un modello che definisce i metodi (comportamento) e variabili (stato) da includere in un particolare tipo di oggetto

riconoscimento delle classi (classe esterno) richiede esperienza.

Leggere qualsiasi cosa da Alan Kay, lui è l'inventore di Object Technology, e uno degli inventori di Smalltalk, l'unico ambiente di oggetti puri ad oggi.

-1

Un oggetto è un'entità identificabile con alcune caratteristiche e comportamenti. Rappresenta un'entità in grado di memorizzare i dati e la relativa funzione associata.

Una classe è un gruppo di oggetti che condividono proprietà e relazioni comuni. Rappresenta un gruppo di oggetti simili.

2

Non ho molta esperienza di programmazione, ma un mio amico ha fatto un buon esempio di definizione di una classe e di un oggetto. Farò del mio meglio per usare il linguaggio umano il più possibile.

Prendi un cavallo. Cosa ti fa sapere che questo animale è un cavallo e non un ... cane? Perché ha quattro zampe, è un grosso animale, è molto forte e può correre. Bene, hai appena definito una lezione di 'cavallo' nella tua testa! Ora, vedrete un cavallo bianco chiamato "Pollyanna" e un cavallo maschio nero chiamato "Demone". Appena li vedi, sai che sono cavalli, quindi appartengono alla classe 'cavallo'. Cosa li rende diversi? Il sesso e il colore ... Quelli sono proprietà della classe 'cavallo'. 'Pollyanna' e 'Demon' sono due oggetti, sono la cosa reale, cose che puoi toccare e guidare. Anche le loro proprietà, sesso e colore sono diversi. Pollyanna è bianca e femminile. Il demone è nero e maschio. Quelle proprietà definite sono ciò che distingue un oggetto dall'altro. Un cavallo dall'altra. Ma appartengono ancora alla stessa classe: sono sempre cavalli!

Più tecnico ora ... Una classe è una definizione più astratta di qualcosa. Un progetto. Un oggetto è la cosa reale che appartiene a quella classe. Quando crei un nuovo oggetto da una classe stai istanziando un oggetto (ovvero creando un'istanza).

Spero che questo aiuti, e se lo fa, non mi dispiace ... Come ho detto prima, non ho molta esperienza di programmazione :)

Gianluca

0

nella grammatica comune sostantivo è di classe e Nome proprio è un oggetto.

0

Un oggetto ha una durata limitata, l'oggetto viene creato e infine distrutto. Anche durante questa vita, l'oggetto può subire modifiche significative

-1

Il termine classe e oggetto sono sicuramente correlati a un altro, ma ogni termine ha il proprio significato distinto. Iniziamo spiegando cosa significa il termine classe. La classe si riferisce al pezzo di codice actuall writtten che è usato per definire il comportamento di ogni classe data. Quindi noi classifichiamo un pice di codice statico che consiste se atributes che non cambiano durante l'esecuzione di un orogram.While Object si riferisce ad un esempio esempio reale di un class.Every ibhect deve appartenere a una classe

0

classe

  1. un modo per legare i dati e le funzioni associate insieme.
  2. La classe ha molti oggetti.
  3. Classe è un modello per la creazione di oggetti.
  4. È un'esistenza logica.
  5. Lo spazio di memoria non è allocato, quando viene creato.
  6. Definizione (dichiarazione) viene creata una volta.
  7. La classe viene dichiarata utilizzando la parola chiave "class".

oggetto

  1. entità runtime di base in ambiente orientato agli oggetti.
  2. L'oggetto appartiene alla sola classe.
  3. Gli oggetti sono un'implementazione di classe.
  4. È un'esistenza fisica.
  5. Lo spazio di memoria viene assegnato quando viene creato.
  6. Viene creato molte volte come richiesto.
  7. L'oggetto è l'istanza o la variabile della classe.
Problemi correlati