2011-07-06 39 views
5

Las clases de contenedor se utilizan para "envolver" los tipos de datos primitivos en objetos para que puedan incluirse en las actividades que se resevaron para los objetos. La clase de cadena ajusta los literales de cadena a un objeto.¿Podemos llamar a String como una clase contenedora?

En este caso, ¿podemos llamar a String como una clase contenedora?

+0

Me gusta llamar a String "Fred". No, yo no llamaría a eso una clase contenedora. No sé lo que mejorará si lo hago. – duffymo

+0

clase contenedora se refiere implícitamente a una clase PRIMITIVA de contenedor. por lo tanto, considerando su definición implícita, String no es una clase contenedora. –

Respuesta

8

De acuerdo con wikipedia, una (primitiva) envoltura clase en Java es una de esas ocho clases que envuelven un (= uno) valor primitivo. Stringwraps a char[] por lo tanto, según esto, es no a (primitivo) clase de contenedor.

Además, String no está diseñado para envoltura o decorar una matriz de caracteres. String ha sido diseñado para modelar una cadena, una secuencia de caracteres y la implementación actual usa un char[] interno. Pero Sun también podría haber elegido usar un byte[] largo con una sugerencia de codificación de caracteres ,, una colección o algo nativo. Eso no importa.

Eso es diferente para los envoltorios de primitivas: Han sido diseñados solamente para envolver un primitivo, a adaptarse un java primitiva a java.lang.Object.

6

No. La cadena no es una clase contenedora, simplemente porque no hay un tipo de primitiva paralela que se envuelve.

From wiki:

Una clase contenedora primitiva en el lenguaje de programación Java es uno de los ocho clases proporcionadas en el paquete java.lang proporcionar métodos de objeto para los ocho tipos primitivos

1

Una cadena es una representación de una secuencia de caracteres, pero no necesariamente un 'contenedor'. Autoboxing y unboxing, por ejemplo, no se aplican a String. Pero se aplican a primitivas como int long, etc.

0

Convencionalmente no, ya que no envuelve una de las ocho primitivas, pero no creo que dañe llamarlo así.

1

No, una cadena no ajusta el valor literal. Un literal le da una forma diferente de crear un objeto String. Pero el propio literal es un objeto, por lo que podría hacer cosas como:

System.out.println("Hello world".toUpperCase()); 

No es que usted quiere hacer esto.

-2

No, no podemos llamar cadena como una clase contenedora. Porque la gente del sol no incluía la cadena en las clases contenedoras.

+1

¿Esa respuesta es útil? viendo todos los demás (y uno aceptado) – manuell

Cuestiones relacionadas