A seguinte expressão compila:
Object oa = new float[20];
Como essa expressão é válida?
De acordo com minha opinião, a sintaxe correta seria
Object [] oa = new float[20];
Respostas:
33 para resposta № 1Matrizes são objetos em Java. Portanto, uma matriz de carros alegóricos é um objeto.
BTW, Object o = new Object[20];
também é válido, pois uma matriz de objetos é um objeto.
Observe também que Object[] oa = new float[20];
é inválido, pois os flutuadores primitivos não são objetos e, portanto, uma matriz de flutuadores não é uma matriz de objetos. O que seria correto é
Object[] oa = new Float[20];
Em relação às matrizes, por serem objetos, eles têm todos os métodos de java.lang.Object. Eles também têm um atributo final público length
, e eles são clonáveis e serializáveis:
Object o = new float[20];
System.out.println("o instanceof Serializable = " + (o instanceof Serializable)); // true
System.out.println("o instanceof Cloneable = " + (o instanceof Cloneable)); // true
3 para resposta № 2
Basicamente, Object
é uma super classe para todos os objetos em Java. Então, fazendo uma referência de Object
classe e, em seguida, usá-lo como qualquer outro objeto é válido.
Object ob = new Integer(5);
Matrizes em Java nada mais são que objetos, portanto, referência a Object
classe pode ser atribuída uma matriz.