Perché le lingue OO basate sulla classe usano sempre la parola chiave "nuovo" per creare un oggetto? [duplicare]

2
    

Questa domanda ha già una risposta qui:

    

Non ne so molto dei linguaggi OO, ma da quello che ho visto sembra che la maggior parte dei linguaggi OO basati sulla classe utilizzi una parola chiave new (o qualcosa di equivalente) per creare un oggetto. I linguaggi OO basati su prototipo come JavaScript lo imitano persino.

Dal punto di vista di mantenere la sintassi semplice, perché non omettere la parola chiave new e utilizzare solo il costruttore (in genere con lo stesso nome della classe)?

C'è qualche considerazione semantica implicata nel prefisso al costruttore con una parola chiave new ?

Ho notato che in Scala, se definisci un case -class, puoi semplicemente usare il costruttore senza un precedente new per creare un oggetto, mentre per le altre classi devi usare new . Non conosco la ragione. Lo dico semplicemente perché potrebbe essere correlato.

    
posta reflectionalist 03.01.2015 - 09:28
fonte

1 risposta

3

Per quanto ne so, è semplicemente una questione di C ++ che ha questa sintassi (e aveva bisogno di una certa sintassi perché il linguaggio non era abbastanza strong da supportare l'implementazione di new T(); in quel momento come una libreria) e poi ereditato. Dalla memoria, Java l'ha ereditato dal C ++, JavaScript lo ha rilevato da Java e lo stesso ha fatto C #. Da allora, sembra essere diventato piuttosto standard.

Fondamentalmente, non è diverso usare le parentesi graffe per denotare l'ambito: è stato ereditato da un antenato comune.

    
risposta data 03.01.2015 - 13:20
fonte

Leggi altre domande sui tag