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?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.
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 diferença raramente importa na prática no entanto, desde que saibas o que podes e não podes fazer com objectos {[[0]}.
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.
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".