Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Clase Estática
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Clase Estática 
 
Buenas!.

¿ Alguien sabe qué sentido tiene declarar una clase que no puede ser instanciada ?.  
Si no puede ser instanciada:

¿ Cómo se usa ?.
¿ Qué función cumple ?.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Estática 
 
¿Qué son? Te doy la explicación: Son las clases que son lo que son (Chim-pon).
¿Por qué son lo que son? Pues... esto...      
¿Par qué sirven? Pues intenta hacer un



y verás para qué sirve la clase string...

   
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Estática 
 
Shordi:

Citar:

¿Par qué sirven? Pues intenta hacer un



y verás para qué sirve la clase string...


Eso te diría que no se puede instanciar un tipo nativo.  

Estoy probando a crear variables estáticas y métodos estáticos en una clase. Aun no he creado un clase estática.
El motivo es que veo que se puede hacer lo mismo con métodos mas sencillos y no usar estos.

Ejemplo. Va contando las instancias de la clase Criatura.

Static Public total As Integer

Public Sub _new(nom As String)

  total += 1    
  Print "Ha nacido la " & nom & "!"  
  Me.Saludar
  
End

Static Public Sub status()
  
  Print "\nEl número total de criaturas es", Criatura.total  
  
End

Public Sub Saludar()
  
  Print "Hola mundo!"
  
End
 


Public Sub Main()

Dim criaturas As New Criatura[]
Dim cria As Criatura  
Dim n As Integer

Print "Accediendo al atributo de clase criatura.total"
Print Criatura.total  'No se ha instanciado ninguna clase

For n = 1 To 3
  cria = New Criatura("Criatura " & Str(n))
  criaturas.Add(cria)  
Next

Criatura.status()

Print "Accediendo al atributo de clase a través de un objeto"
'.....
End
 


Salida:
Citar:

Accediendo al atributo de clase criatura.total
0
Ha nacido la Criatura 1!
Hola mundo!
Ha nacido la Criatura 2!
Hola mundo!
Ha nacido la Criatura 3!
Hola mundo!

El número total de criaturas es    3
Accediendo al atributo de clase a través de un objeto


En este caso se puede saber el número de criaturas creadas con el número de criaturas almacenadas en el array.
Pero no es esa la idea, la idea es usar Static.

No puedo hacer...
print criaturas[0].total
 

Ya que me soltaría que es estática.
En el fondo todas las instancias comparten ese valor.

Existiendo otras formas. El motivo es, ¿ por que debería usar static ?.

Los métodos estáticos solo valen para acceder a las variables estáticas de la clase.
Parece un tema mas complejo dentro de la programación orientada  o objeto.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Estática 
 
Hola, Shell.

Pues en POO el termino se refiere a la manera en como accedes a funciones o atributos de una clase, que en "desarrolloweb" definen:

Citar:

Ese es el comportamiento normal de los miembros de clase. Sin embargo, los elementos estáticos o miembros de clase son un poco distintos. Son elementos que existen dentro de la propia clase y para acceder los cuales no necesitamos haber creado ningún objeto de esa clase. Osea, en vez de acceder a través de un objeto, accedemos a través del nombre de la clase.


En este enlace: http://www.desarrolloweb.com/articu...static-poo.html

Ahora bien, en clases de PHP la profesora nos entregó una clase "Conexión" en la que tenía funciones para conectar a una bd, desconectarse, enviar querys, saber por ella si había o no filas...  Y ella no creaba el ejemplo, accedía por medio de el

nombre_de_la_clase::funcion_o_variable

En el enlace que puse más arriba hay una definición más mejor que la mía.

Saludos...
 



 
vicr - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Estática 
 
Citar:

Los métodos estáticos solo valen para acceder a las variables estáticas de la clase.
Parece un tema mas complejo dentro de la programación orientada  o objeto.

Ni idea oiga...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Estática 
 
Shell:

Es la implementacion del patron singleton ( http://jsbsan.blogspot.com.es/2013/...reando-log.html ).

Imagina que quieres que todas las acciones de impresión solo la controle una clase "encargadoDeImprimir", y que esta clase, se encargue de dar prioridades de impresión a los documentos (por orden de llegada, por importancia, por autor, etc...).

Si haces instancias de la clase "encargadoDeImprimir", se lia la cosa... pero si solo estas permitido usar una instancia (la propia clase "encargadoDeImprimir), los programadores que vayan ampliando el programa, saben que solo pueden usar esta.





Saludos

Julio
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Estática 
 
Shell escribió: [Ver mensaje]
¿ Cómo se usa ?

Puedes usarla directamente.

Haz una prueba con la Clase Music del Componente gb.sdl2.audio .
Escribe Music y el punto: Music.

No hace falta una su variable.
 



 
última edición por vuott el Jueves, 25 Febrero 2016, 21:32; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Estática 
 
Gracias por los enlaces y por la información.

vicr:

Interesante, ya que es teoría general y se puede aprovechar para cualquier lenguaje

Julio:

Ademas del enlace, encontré por fin el manual que hiciste del uso de patrones...276 paginas, casi na!.  

Vuott:

Citar:

Hace una prueba con la Clase Music del Componente gb.sdl2.audio .
Escribe Music y el punto: Music.

No hace falta una su variable.


Si, en un mensaje ya hace tiempo, estuvimos hablando sobre el uso que tenían esos métodos.
Solo se podía crear uno. Pero no me acuerdo donde....

Esto también puede interesar:

Encontré un vídeo sobre PHP y este, pero no me he fijado en el lenguaje que es...

 
Link


Ay, la leche si es Python..
( Pues no lo puse intencionadamente )...de veras.
Espero que no hable del tema de decoradores, que es un poco lioso.


Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Estática 
 
Perfecto, el vídeo trata el tema  para distintos lenguajes.  

Ahora que habéis visto lo mismo en distintos lenguajes. Opinen como se complica el tema en distintos lenguajes.
Sobre todo en C++ y C#.

En cambio Python sigue siendo sencillo y en Java, la verdad es que no parece tan complicado el uso de POO,
no me gusta esos comandos tan largos para imprimir.

En gambas tampoco es complicado. Solo que no he logrado acceder al atributo de clase mediante el objeto en si.
A ver si lo veo mejor.

Por cierto merece mucho la pena los vídeos de este señor. Voy a apuntarme ya a su canal.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Jueves, 25 Febrero 2016, 20:10; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Clase Estática 
 
+1 Shell  
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Ejemplo De Clase Publica Y Clase Privada Shell Aplicaciones/Fragmentos de Código 2 Martes, 28 May 2013, 11:41 Ver último mensaje
shordi
No hay nuevos mensajes ¿ Es La Clase Padre Una Clase Abstracta ? Shell General 3 Viernes, 04 Julio 2014, 08:58 Ver último mensaje
jsbsan
No hay nuevos mensajes Clase Audio Y Clase Configuracion De Audio... v3ctor Aplicaciones/Fragmentos de Código 3 Jueves, 08 Octobre 2015, 08:35 Ver último mensaje
jsbsan
No hay nuevos mensajes Crear Una Clase Estática? v3ctor General 2 Domingo, 23 Julio 2017, 18:24 Ver último mensaje
chaskux
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron