As classes Java são objetos?

já li antes que classes Java são instâncias da classe {[[0]}. Mas agora, meu professor de ciência da computação diz que aulas de Java não são objetos.

O que é verdade?

 7
Author: itdoesntwork, 2012-08-16

4 answers

Uma classe Java não é um objecto.

No entanto, cada classe Java tem uma instância da classe Class que a descreve.
Essas instâncias são objetos.

 15
Author: SLaks, 2012-08-16 15:11:49
As classes Java não são objetos, são uma abstração.

No entanto, cada classe Java tem uma instância correspondente da classe java.lang.Class que a representa. Essa representação é {[7] } um objecto. Mas não deve confundir a representação com a realidade.

A relação é um pouco semelhante à entre música e partitura. Embora a notação escrita represente a música, ela não é ela mesma a música.

A diferença raramente importa na prática no entanto, desde que saibas o que podes e não podes fazer com objectos {[[0]}.

 3
Author: biziclop, 2012-08-16 15:20:46

A classe (o seu código, ou mesmo o código compilado em seu .ficheiros de classe) não são objectos. Não tens um objecto até instanciares essa aula.

Por exemplo, Java.lang.String é uma classe. String s = new String("Hello world"); define um objecto do tipo String. Essa pode ser a distinção que o seu professor está a fazer.

 1
Author: Babak Naffas, 2012-08-16 15:14:09

Cada classe Java, mesmo java.lang.Class desce de java.lang.Object.

Editar:

A redacção é um pouco ambígua. As instâncias das classes Java são definitivamente objetos. Classes por si só, não podem ser realmente considerados objetos, bem, porque nada existe na memória, exceto a classe "blueprint".
 0
Author: jn1kk, 2012-08-16 15:10:39