Preguntas Teoricas

22/12/2005 - 18:01 por Daniel H. Villa | Informe spam
Hola Grupo:

Estoy buscando información para saber que significa los siguientes
conceptos, segun son orientados a VB.Net. Ojala y alguien sepa o donde puedo
obtener información al respecto.

1.- Que es un Método Virtual.
2.- Que es una Clase Abstracta.
3.- Que es Polimorfismo.
4.- Que es una Clase Sellada.
5.- Cuales son los diferentes Modificadores de Acceso que existen.
6.- Cuales son las diferencias entre una Clase y una Estructura.
7.- Cual es la diferencia entre "Tipos por Referencia" y "Tipos por Valor".
8.- Describir en que escenarios se utilizan las palabras reservadas Out y
Ref.


Salu2 :-)))

(""'·._.·L.I. Daniel Villa·._.·'"")

Preguntas similare

Leer las respuestas

#1 Leonardo
23/12/2005 - 12:34 | Informe spam
1 - Método Virtual (Overridable ) viene a ser un puntero a una función, de
este modo un método en la clase base invoca a un método en la clase que
hereda de ella.
2 - Una clase abstracta (MustInherit ) es aquella que tiene que ser heredada
necesariamente para funcionar.
3 - Polimorfismo (Overloads). Varias funciones / métodos ... con el nombre,
distintos parámetros o valores devueltos.
4 - Sellada - NotInheritable: No se permite heredar de ella, a veces es
conveniente que así sea.
6 - Básicamente las estructuras se almacenan en el stack (uso más eficiente
en local, más pesadas como parámetros), las clases en el montón (New) cuando
se pasan a una función byVal de hecho se pasa una copia del puntero que
apunta al mismo objeto, hay más diferencias y mirate también ValueType. Las
clases representan el concepto de usar punteros sin correr riesgos.
7 - Un tipo por referencia puede ser modificado en la función llamada, por
valor es una copia (si es una clase, lo que se copia es el "puntero").
8 - Ref no me suena en Vb pero sí en c++, era una manera "elegante" de
ahorrarse el & y * para los punteros. Out también es c#.
...
Es fácil liarse entre la sintáxis de Vb y C#, observa que para cada palabra
clave en C# existe la equivalente en Vb que no coincide en nombre.
Al mirar la documentación que está bastante clara, procura elegir la opción
correspondiente aVisual Basic cuando haya varias (Class, Function)

"Daniel H. Villa" escribió en el mensaje
news:
Hola Grupo:

Estoy buscando información para saber que significa los siguientes
conceptos, segun son orientados a VB.Net. Ojala y alguien sepa o donde
puedo obtener información al respecto.

1.- Que es un Método Virtual.
2.- Que es una Clase Abstracta.
3.- Que es Polimorfismo.
4.- Que es una Clase Sellada.
5.- Cuales son los diferentes Modificadores de Acceso que existen.
6.- Cuales son las diferencias entre una Clase y una Estructura.
7.- Cual es la diferencia entre "Tipos por Referencia" y "Tipos por
Valor".
8.- Describir en que escenarios se utilizan las palabras reservadas Out y
Ref.


Salu2 :-)))

(""'·._.·L.I. Daniel Villa·._.·'"")



Respuesta Responder a este mensaje
#2 Daniel H. Villa
23/12/2005 - 17:00 | Informe spam
Muchas gracias Leonardo por tu ayuda

Salu2 :-)))

(""'·._.·L.I. Daniel Villa·._.·'"")


"Leonardo" escribió en el mensaje
news:
1 - Método Virtual (Overridable ) viene a ser un puntero a una función, de
este modo un método en la clase base invoca a un método en la clase que
hereda de ella.
2 - Una clase abstracta (MustInherit ) es aquella que tiene que ser
heredada necesariamente para funcionar.
3 - Polimorfismo (Overloads). Varias funciones / métodos ... con el
nombre, distintos parámetros o valores devueltos.
4 - Sellada - NotInheritable: No se permite heredar de ella, a veces es
conveniente que así sea.
6 - Básicamente las estructuras se almacenan en el stack (uso más
eficiente en local, más pesadas como parámetros), las clases en el montón
(New) cuando se pasan a una función byVal de hecho se pasa una copia del
puntero que apunta al mismo objeto, hay más diferencias y mirate también
ValueType. Las clases representan el concepto de usar punteros sin correr
riesgos.
7 - Un tipo por referencia puede ser modificado en la función llamada, por
valor es una copia (si es una clase, lo que se copia es el "puntero").
8 - Ref no me suena en Vb pero sí en c++, era una manera "elegante" de
ahorrarse el & y * para los punteros. Out también es c#.
...
Es fácil liarse entre la sintáxis de Vb y C#, observa que para cada
palabra clave en C# existe la equivalente en Vb que no coincide en nombre.
Al mirar la documentación que está bastante clara, procura elegir la
opción correspondiente aVisual Basic cuando haya varias (Class,
Function)

"Daniel H. Villa" escribió en el mensaje
news:
Hola Grupo:

Estoy buscando información para saber que significa los siguientes
conceptos, segun son orientados a VB.Net. Ojala y alguien sepa o donde
puedo obtener información al respecto.

1.- Que es un Método Virtual.
2.- Que es una Clase Abstracta.
3.- Que es Polimorfismo.
4.- Que es una Clase Sellada.
5.- Cuales son los diferentes Modificadores de Acceso que existen.
6.- Cuales son las diferencias entre una Clase y una Estructura.
7.- Cual es la diferencia entre "Tipos por Referencia" y "Tipos por
Valor".
8.- Describir en que escenarios se utilizan las palabras reservadas Out y
Ref.


Salu2 :-)))

(""'·._.·L.I. Daniel Villa·._.·'"")







Respuesta Responder a este mensaje
#3 Tristan
23/12/2005 - 18:36 | Informe spam
1.- Que es un Método Virtual.



Un método virtual es un método que admite polimorfismo. Una llamada a un
método virtual no se conoce en tiempo de compilación, no se puede saber que
método se invocará exactamente hasta el tiempo de ejecución. Se utiliza una
tabla, llamada tabla virtual de métodos, vtable, para determinar en tiempo
de ejecución a cual de los métodos posibles se debe invocar. Se corresponde
en vb.net con el modificador "Overridable".

2.- Que es una Clase Abstracta.



Una clase de la que no se pueden crear instancias. Se denominan abstractas
por que no son concretas, no tienen objetos concretos. Sólo sirven como base
para otras clases. Son algo así como la generalización de un conjunto de
clases.

3.- Que es Polimorfismo.



El concepto más importante de la OOP. Hay varios tipos pero el más
importante, el de herencia, permite que un mismo código invoque un método u
otro en función del tipo del objeto. Por ejemplo, si tienes una tabla de
empleados, llamara al mismo método Print desde un bucle, invocaría métodos
distintos en función del tipo de empleado.

4.- Que es una Clase Sellada.



Una clase que no admite herencia.

5.- Cuales son los diferentes Modificadores de Acceso que existen.



Public, Protected, Protected Friend, Private

6.- Cuales son las diferencias entre una Clase y una Estructura.



Es decir, diferencia entre tipos referencia y tipos valor.

Una clase se gestiona como un puntero (almacenado en pila) y los datos a los
que apunta (almacenados en el heap). Una estructura se almacena enteramente
en pila y no necesita puntero.

Al funcionar como punteros, y reservarse su espacio de forma dinámica, las
clases admiten herencia, cosa que sería imposible en las estructuras.

Al asignar una variable de tipo clase a otra, solo se asigna su referencia,
si se modifica el objeto al que apunta la una, la otra queda igualmente
modificada. En las estructuras se copia el objeto entero, con lo que
modifcar uno no afecta al otro. Lo mismo ocurre al pasarlas como parámetro.
Para las clases sólo se pasa un puntero, para las estructuras se pasa el
objeto entero (en este último caso siempre y cuando no se utiliza ByRef o
ref en c#).

La creación de una estructura es instantanea, no requiere recursos, el
acceso a los miembros es también más eficiente, puesto que no requiere un
puntero. Las instancias de clase necesitan tiempo para la asignación
dinámica de su espacio, y también para su destrucción.

7.- Cual es la diferencia entre "Tipos por Referencia" y "Tipos por
Valor".



Está respondido en la pregunta anterior.

8.- Describir en que escenarios se utilizan las palabras reservadas Out y
Ref.



Esto sólo tiene sentido en C#. En vb.net ambos son ByRef.

En ambos casos el parámetro se pasa como referencia (puntero),
independientemente de que sean tipo valor o tipo referencia. Out se utiliza
cuando se va a utilizar como parámetro de salida. Ref siempre que es de
entrada/salida o cuando se quiere utilizar como de entrada pero evitando
hacer copia.

No olvides que las clases son siempre tipos referencia. Prácticamente nunca
tiene sentido pasar un objeto como referencia.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#4 Daniel H. Villa
28/12/2005 - 21:19 | Informe spam
Gracias Tristan por tu ayuda

Salu2 :-)))

(""'·._.·L.I. Daniel Villa·._.·'"")


"Tristan" escribió en el mensaje
news:eaclcd%
1.- Que es un Método Virtual.



Un método virtual es un método que admite polimorfismo. Una llamada a un
método virtual no se conoce en tiempo de compilación, no se puede saber
que método se invocará exactamente hasta el tiempo de ejecución. Se
utiliza una tabla, llamada tabla virtual de métodos, vtable, para
determinar en tiempo de ejecución a cual de los métodos posibles se debe
invocar. Se corresponde en vb.net con el modificador "Overridable".

2.- Que es una Clase Abstracta.



Una clase de la que no se pueden crear instancias. Se denominan abstractas
por que no son concretas, no tienen objetos concretos. Sólo sirven como
base para otras clases. Son algo así como la generalización de un conjunto
de clases.

3.- Que es Polimorfismo.



El concepto más importante de la OOP. Hay varios tipos pero el más
importante, el de herencia, permite que un mismo código invoque un método
u otro en función del tipo del objeto. Por ejemplo, si tienes una tabla de
empleados, llamara al mismo método Print desde un bucle, invocaría métodos
distintos en función del tipo de empleado.

4.- Que es una Clase Sellada.



Una clase que no admite herencia.

5.- Cuales son los diferentes Modificadores de Acceso que existen.



Public, Protected, Protected Friend, Private

6.- Cuales son las diferencias entre una Clase y una Estructura.



Es decir, diferencia entre tipos referencia y tipos valor.

Una clase se gestiona como un puntero (almacenado en pila) y los datos a
los que apunta (almacenados en el heap). Una estructura se almacena
enteramente en pila y no necesita puntero.

Al funcionar como punteros, y reservarse su espacio de forma dinámica, las
clases admiten herencia, cosa que sería imposible en las estructuras.

Al asignar una variable de tipo clase a otra, solo se asigna su
referencia, si se modifica el objeto al que apunta la una, la otra queda
igualmente modificada. En las estructuras se copia el objeto entero, con
lo que modifcar uno no afecta al otro. Lo mismo ocurre al pasarlas como
parámetro. Para las clases sólo se pasa un puntero, para las estructuras
se pasa el objeto entero (en este último caso siempre y cuando no se
utiliza ByRef o ref en c#).

La creación de una estructura es instantanea, no requiere recursos, el
acceso a los miembros es también más eficiente, puesto que no requiere un
puntero. Las instancias de clase necesitan tiempo para la asignación
dinámica de su espacio, y también para su destrucción.

7.- Cual es la diferencia entre "Tipos por Referencia" y "Tipos por
Valor".



Está respondido en la pregunta anterior.

8.- Describir en que escenarios se utilizan las palabras reservadas Out y
Ref.



Esto sólo tiene sentido en C#. En vb.net ambos son ByRef.

En ambos casos el parámetro se pasa como referencia (puntero),
independientemente de que sean tipo valor o tipo referencia. Out se
utiliza cuando se va a utilizar como parámetro de salida. Ref siempre que
es de entrada/salida o cuando se quiere utilizar como de entrada pero
evitando hacer copia.

No olvides que las clases son siempre tipos referencia. Prácticamente
nunca tiene sentido pasar un objeto como referencia.

Juan Carlos Badiola
MVP - C#

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida