border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 04-06-2005, 19:44:51
Gran Participación en el Foro
 
Registrado: sep 2004
Posts: 119
Cblackx Valoración +2
Predeterminado clases y objetos

No me queda claro el concepto.
A ver si me puedo explicar.
En la programacion tradicional cuando declaro una variable le estoy diciendo al sistema que reserve un espacio X de memoria para guardar un valor X. La cantidad de memoria depende del tipo de dato a almacenar.
Bueno, aqui viene mi conflicto.
Por ej:
Cita:
Public Class Autos

Public color As String
Public marca As String
Public modelo As Integer
End Class
Cita:
Dim Deportivo As Autos
Deportivo = New Autos
Dim A As String
A = TextBox1.Text
Deportivo.color = A
MsgBox(Deportivo.color)
Lo que hice es definir la clase "Autos", y luego declare la variable "deportivo" del tipo "Autos"(o sea del tipo de la clase que defini anteriormente). Como sabe que cantidad de memoria a reservar?

Luego en la proxima sentencia:
Cita:
Deportivo = New Autos
Creo una instancia de Autos en la variable deportivo. O sea, seria el proceso de concretar la clase en un lugar de la memoria?
Responder Con Cita
  #2 (permalink)  
Antiguo 04-06-2005, 20:54:35
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.271
acalanto ha deshabilitado la reputación
Predeterminado

Cualquier cosa que tú instancies, en cualquier lenguaje, ocupa una posición en memoria. El momento en el que lo hace y cómo, es problema del compilador.

Por ponerte un ejemplo; VB no ocupa memoria en la declaración (Al menos para el objeto), la ocupa en el momento en que la instancias con New. Las variable no estoy muy seguro pero me parece que tampoco ocupan memoria hasta que les asignas un valor o las consultas.

Sin embargo lenguajes como C++ si que ocupan memoria en el momento de la declaración y de hecho si declaras por ejemplo un entero (int mint;) y no lo inicias con un valor (int mint=0;), puedes comprobar que por el solo hecho de declararlo ya apunta a una posición de memoria. Lo que existe en esa memoria puede ser consecuencia de otros procedimientos que se hayan ejecutado anteriormente, no le importa, simplemente busca una posición libre y la ocupa (Manteniendo lo que allí se encontrase.)


No sé si he resuelto tus dudas, pero un objeto es cualquier cosa que existe en memoria bien sea una clase, una variable o un gestor de variables (String en C++ por ejemplo). Todo en definitiva son objetos.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 04-06-2005, 23:36:26
Gran Participación en el Foro
 
Registrado: sep 2004
Posts: 119
Cblackx Valoración +2
Predeterminado

y como sabe que cantidad de memoria reservar?, porque en C por ejemplo tenes varios tipos de datos como int, char, float, long, double, etc. Y cada uno ocupa segun el compilador una cantidad X de memoria.
si yo cree una clase y luego declare una variable del tipo de esa clase, existe alguna manera de saber la cantidad de memoria que va a reservar?
Responder Con Cita
  #4 (permalink)  
Antiguo 05-06-2005, 00:21:20
Avatar de imported_chiaravel
Administrator
 
Registrado: dic 2002
Ubicación: Buenos Aires - Argentina
Posts: 2.281
imported_chiaravel Valoración +2
Predeterminado

Cita:
Empezado por Cblackx
y como sabe que cantidad de memoria reservar?, porque en C por ejemplo tenes varios tipos de datos como int, char, float, long, double, etc. Y cada uno ocupa segun el compilador una cantidad X de memoria.
si yo cree una clase y luego declare una variable del tipo de esa clase, existe alguna manera de saber la cantidad de memoria que va a reservar?
Pero es que no entiendes.

Cuando tu dices ....

Código:
Public MiAutomovil as Automovil
El lenguaje en que estes programando previamente sabe cuanta memoria ocupa un Automovil porque se supone que AUTOMOVIL es una clase definida por ti o por el compilador.

Cuando tu creas una clase y la dotas de propiedades y le asignas variables locales y todo lo necesario, el runtime interpreta y reserva la cantidad de memoria necesaria tomando en cuenta todo lo que tu previamente haz declarado y definido dentro de esa clase.

Es por eso que una clase de tipo AUTOMOVIL donde le haz definido 100 variables internas y 100 propiedades pesará en memoria mucho más que una que solo tenga un par de variables y propiedades.

Espero que ahora tengas un poco mas claro el asunto.

Saludos
Responder Con Cita
  #5 (permalink)  
Antiguo 05-06-2005, 08:02:48
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.271
acalanto ha deshabilitado la reputación
Predeterminado

Tal y como te comenta Chiaravel, una clase tiene código y atributos. Con los atributos no existe duda; un entero ocupa 2 bytes, un long 4 un doble 8 y una cadena el número de caracteres + puntero etc etc.

El código también ocupa memoria en un número de bytes que el compilador necesita para transformar una instrucción del lenguaje a su equivalente en código binario.

Si compilas con código de depuración (Muchos compiladores ofrecen esta opción) y depuras la aplicación en mnemotécnicos, comprobarás que:

Código:
for i = 1 to 30
    a=a+b
next i

se transforma en algo parecido a

Código:
mov ax, 30
mov cx, [bp+10000]
mov es, [bp+10004]
push ax
add cx,es
mov [bp+10004],cx
pop ax
jnz ax

Si cada mnemotécnico en ensamblador ocupa 1 byte (En algunos casos 2), podemos asegurar que para el código descrito, necesitará 8 bytes de memoria.


El ejemplo ensamblador es esquemático y no necesariamente el compilador lo va a traducir tal y como lo he escrito.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Clases en PHP Claudia PHP 1 28-12-2007 08:55:11
Uso de las Clases. No entiendo Bettyboop Visual Basic.NET 2003 & 2005 4 27-06-2007 20:54:17
Clases GuNA Visual Basic 6.00 6 17-01-2007 00:35:01
Clases y objetos tincho_diablo Visual Basic 6.00 1 15-04-2006 10:16:45
reconocimiento de clases esteban Visual Basic 6.00 2 14-06-2005 13:36:26


La franja horaria es GMT. Ahora son las 01:45:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right