Comunidad PHPeros

Lenguajes => PHP => (POO) Programación Orientada a Objetos => Mensaje iniciado por: Focux en 01 de Julio de 2010, 23:10:25 pm

Título: [POO][!TUT] Clases constantes.
Publicado por: Focux en 01 de Julio de 2010, 23:10:25 pm
Bueno, primero que nada debemos saber como hacer una variable constante, las variables constantes se hacen poniendo el prefijo const, ejemplo:
Citar
class PHPeros {
const nombre;
}

Si se fijan en el ejemplo anterior, cuando vamos hacer la variable constante no se pone el $.

Las variables constantes no se llaman como las normales, sino que se llaman como las estaticas (Si leyerón el tuto sabran), ejemplo:
Citar
PHPeros::nombre; (si estamos afuera de la clase)
self::nombre; (Si estamos adentro de la clase)


Bueno, esto fue todo, he explicado lo mejor que pude & espero que puedan aprender algo sobre las clases constantes.
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: javipilo en 01 de Julio de 2010, 23:36:25 pm
Vale y esto para que sirve exactamente...

Saludos
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Focux en 01 de Julio de 2010, 23:40:43 pm
Supongamos que quieres mostrar una variable afuera de la clase pero no quieres instancear la clase, pues puedes ponerla constante & mostrarla así: miClase::constante
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Physlet en 01 de Julio de 2010, 23:45:41 pm
A ese le veo una mala utilidad, de acuerdo a tu último ejemplo Focux.

Esto de andar usando funciones y métodos sin instanciar clase y cosas así, siento que se están yendo fuera del concepto general de lo que es una POO.

En programación estructurada, como designarías una constante?
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Focux en 01 de Julio de 2010, 23:48:42 pm
A ese le veo una mala utilidad, de acuerdo a tu último ejemplo Focux.

Esto de andar usando funciones y métodos sin instanciar clase y cosas así, siento que se están yendo fuera del concepto general de lo que es una POO.

En programación estructurada, como designarías una constante?
Sólo es un ejemplo, no es que se le da ese uso, los métodos que se podrían poner sin instancear son métodos que deberas estar utilizando a cada momento, por ejemplo una clase para hacer consultar o una conexión a la bd de datos, tambien cave recalcar que si quieren no estar instanceando pero no quieren usar clases estaticas, lo mejor sería serializar la instancea.
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Focux en 02 de Julio de 2010, 19:08:59 pm
Con respecto a la otra pregunta que no la había visto, ahora mismo estoy programando una clase para un framework que está haciendo un amigo & estoy usando algunas variables constantes, cuando termine posteo la clase & podrás ver el uso que le di.
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: CarlosRdrz en 02 de Julio de 2010, 23:43:28 pm
Las clases y metodos constantes se suelen usar para clases que no necesitan instanciarse.
Un ejemplo es la clase Math de Java, es una clase pero no se instancia porque solo hace operaciones matemáticas, y hacer un objeto para cada operación no es lógico.

Saludos
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Physlet en 03 de Julio de 2010, 04:27:11 am
Las clases y metodos constantes se suelen usar para clases que no necesitan instanciarse.
Un ejemplo es la clase Math de Java, es una clase pero no se instancia porque solo hace operaciones matemáticas, y hacer un objeto para cada operación no es lógico.

Saludos
Es que sí, de esta manera, el conjunto de métodos de dicha clase formaría también lo conocido como "librería"... O sea que de esta manera, se hace mucho más factible meter en un archivo un conjunto de funciones sin clase ni nada, y luego le hacemos un require_once() en nuestro documento y llamamos la función y ya...
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Focux en 03 de Julio de 2010, 17:54:59 pm
Tambien para que no se confunda una diferencia entre las variables estaticas & las constantes es que las constantes son inmodificables.
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Physlet en 04 de Julio de 2010, 20:30:19 pm
Y como le doy valor a esa constante?..
Es decir, como creo una constante dentro de la clase...

Por ejemplo, si quisiera hacer:

$pi = 3.1416;

Pero como atributo de la clase...?
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Focux en 04 de Julio de 2010, 22:24:16 pm
Lee arriba, lo explique.
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Physlet en 04 de Julio de 2010, 22:30:42 pm
Lee arriba, lo explique.
¿En serio?

class PHPeros {
const nombre;
}

Eso es lo único que veo.
O sea que yo puedo hacer esto:

class PHPeros {
   const pi;
}

Pero como le doy valor a ese pi?
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Focux en 04 de Julio de 2010, 22:51:26 pm
Puedes hacerlo de esta manera
const pi = 3.1416;
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: CarlosRdrz en 04 de Julio de 2010, 23:03:59 pm
Es que sí, de esta manera, el conjunto de métodos de dicha clase formaría también lo conocido como "librería"... O sea que de esta manera, se hace mucho más factible meter en un archivo un conjunto de funciones sin clase ni nada, y luego le hacemos un require_once() en nuestro documento y llamamos la función y ya...

Eso depende de muchas cosas, como todo.

Por seguir con el ejemplo de antes, en Java no cabe la posibilidad que mencionas, porque es un lenguaje enteramente orientado a objetos, y por lo tanto sus librerias no tienen funciones sueltas, sino que todo esta dentro de una clase, como el caso de Math.

Saludos
Título: Re:[POO][!TUT] Clases constantes.
Publicado por: Focux en 04 de Julio de 2010, 23:39:09 pm
Es que sí, de esta manera, el conjunto de métodos de dicha clase formaría también lo conocido como "librería"... O sea que de esta manera, se hace mucho más factible meter en un archivo un conjunto de funciones sin clase ni nada, y luego le hacemos un require_once() en nuestro documento y llamamos la función y ya...
El punto de POO es hacer el código reutilizable para así ayudar al programador & disminuir los altos costos de programación