Anuncios

Bienvenidos sean a este post, anteriormente hemos visto como trabajar con objetos en este lenguaje pero hoy nos centraremos en algunos metodos y modificadores especificos para trabajar como si fuera un lenguaje orientado a objetos.

Anuncios

Si bien nosotros utilizamos a CreateObject y GetObject para poder crear objetos de programas y/o librerias que nos permitian ejecutar distintas acciones, les recomiendo este post, y hoy lo que haremos es extender este tema y para ello vamos a hablar primero de los modificadores de acceso:

  • public, permte el acceso al elemento desde cualquier script por fuera de este
  • private, restringe el acceso al elemento solamente a este script
Nota: Cuando no informamos ningun modificador el lenguaje toma de forma predeterminada el public
Anuncios

Si bien esto estaba pensado para la epoca de cuando funcionaba en los navegadores, hoy se puede seguir usando pero no creo que sea viable, por otro lado no queda como un dato anecdotico, estos modificadores se pueden aplicar tanto a las propiedades (variables) y a los metodos (funciones) de la clase, hablemos sobre nuestro siguientes metodos.

Anuncios

En este caso vamos a ver tres metodos que nos permitiran hacer estas procedimientos:

  • Let, permite que se asignen valores, no objetos, a una propiedad
  • Get, devuelve un valor o un objeto de una propiedad
  • Set, permite que se asignen objetos, no valores, a una propiedad

Su sintaxis es la siguiente:

public property {let,get,set} nombreProp(argumentos)
{
... instrucciones ...
}
Anuncios

Comenzara con el modificador public y luego lleva la palabra property, despues puede ir cualquiera de los tres metodos mencionados anteriormente seguido del nombre de la propiedad, en el bloque iran las instrucciones permitentes, dependiendo del metodo que hayamos elegido, su utilizacion es principalmente para manipular correctamente el proceso de validacion de datos y asignacion de un nuevo valor a una variable privada, para entender mejor el concepto analicemos el siguiente ejemplo:

Nota: Los argumentos son opcionales y van a depender de que metodo estemos usando.

compus.vbs

dim comput

set comput = new Compu
set sistema = CreateObject("Scripting.Dictionary")
sistema.add "so","Windows"

comput.CompuTipo = "CPU"
set comput.SistemaOperativo = sistema

wscript.echo ("CPU: " & comput.CompuTipo & vbCrLF & "SO: " & comput.getOs())

class Compu
	private tipo
	private so

	public property let CompuTipo(t)
		tipo = t
	end property

	public property get CompuTipo()
		CompuTipo = tipo
	end property

	public property set SistemaOperativo(objeto)
		set so = objeto
	end property

	public property get SistemaOperativo()
		set SistemaOperativo = so
	end property

	function getOs()
		getOs = so("so")
	end function
end class
Anuncios

En este codigo primero vamos a hablar sobre la clase, primero vamos a declarar dos variables de tipo privadas llamadas tipo y so, luego vamos a crear una propiedad llamada CompuTipo que recibira un valor, esta propiedad sera de valor porque usamos el let, el valor que recibimos lo asignaremos a tipo, despues tendremos otra propiedad pero esta vez con get para CompuTipo, al cual le asignaremos a CompuTipo el valor asignado en tipo, nuestra siguiente propiedad por medio de set se usara para asignar un objeto a SistemaOperativo, este recibe un objeto llamado objeto, en el bloque lo usaremos para iniciar a so como objeto por medio de set y el objeto que le enviamos, la siguiente propiedad tambien usa get para el objeto que creamos antes y lo que hace es setear a SistemaOperativo con toda la estructura de so, por ultimo usamos la funcion getOs que nos servira para devolver el valor almacenado en so, por eso so(“so”), con esto explicamos la clase, nuestro siguiente paso sera explicar el codigo en si.

Anuncios

En este caso declaramos una variable llamada comput, luego le definimos como objeto de la clase Compu por medio de new, nuestra siguiente linea es crear un nuevo objeto de tipo Dictionary al cual llamaremos sistema, una vez creado el objeto de tipo Dictionary le agregamos por medio de add un nuevo valor llamado so y con el valor Windows, despues tendremos estas dos lineas:

comput.CompuTipo = "CPU"
set comput.SistemaOperativo = sistema
Anuncios

La primera ingresara un valor a CompuTipo de tipo string, la siguiente linea es crear un objeto para SistemaOperativo al cual le pasaremos sistema, esto creara estructura y valores almacenados en la misma, nuestro siguiente paso sera mostrar la informacion almacenada por medio de wscript.echo en el primer caso mostraremos el valor de CompuTipo y despues mostraremos el valor de SistemaOperativo por medio de getOs, si lo probamos veremos esta salida:

Como pueden ver cada variable se utilizo para distintos propositos, esto es lo que logramos con let, get y set, ya que nos permitiran tener de forma bien diferenciada los valores que van a recibir y poder evitar confusiones o errores.

Anuncios

En resumen, hoy hemos visto unos metodos avanzados para clases, primero hemos hablado sobre los modificadores de acceso, que son, para que servian y para que los podemos usar, despues vimos a let, get y set, tambien vimos para que sirven, como se usan, que nos puede traer de beneficios, un ejemplo donde ponerlo practica, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes comprar mi libro sobre VBscript en Amazon

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00