En este post continuaremos dando un vistazo a Powershell, el lenguaje de scripting de Microsoft. La programación orientada a objetos está presenta en lenguajes de programación modernos y en éste no podría faltar.
Los pilares de la POO son los siguientes:
- Abstracción, entender los atributos a utilizar; la interacción entre sí.
- Encapsulación, niveles de acceso y plantillas.
- Herencia, crear clases a partir de clases existentes. Reutilización de código.
- Polimorfismo, comportamiento según el contexto e implementación.
Creamos nuevo archivo:
new-item clases1.ps1 -type file
clases1.ps1
class MyClase{
static [int]$MAX = 137
[string]$NombreAtributoStr
[int32]$NombreAtributoInt
[datetime]$NombreAtributoFecha
}
$obj = [MyClase]::new()
$obj.NombreAtributoStr = 'Alquimista'
$obj.NombreAtributoInt = 33-11;
$obj.$NombreAtributoFecha = '12/12/2022'
$obj
Algunos tipos de datos que podemos usar son: [int16], [int32], [string], [datetime], etc.
Creamos nuevo archivo:
new-item clases2.ps1 -type file
clases2.ps1
class X{
[string]$Nombre
[datetime]$Fecha
}
class Y : X{}
$my_y = New-Object -TypeName Y
$my_x = [X]::new()
$my_x | Get-Member
Write-Host "------------------------------------------"
$my_y | Get-Member
Write-Host "------------------------------------------"
En la clase X se agregan dos atributos, Nombre y Fecha. La clase Y es hija de la clase X, por lo que hereda esos atributos. El comando o cmdLet Get-Member nos permite obtener los miembros de una clase definida.
Creamos nuevo archivo:
new-item clases3.ps1 -type file
clases3.ps1
class alumno {
[string]$Nombre
[string]$Apellido
[string]GetNombre() {
return "$($this.Nombre) $($this.Apellido)"
}
}
Como se puede ver, no es necesario definir la clase con mayúscula al inicio, pero los atributos pueden iniciar en mayúscula. Creamos un método llamado GetNombre() que nos devuelve los atributos de $Nombre y $Apellido.
Enlaces:
https://github.com/clojure/tools.deps.alpha/wiki/clj-on-Windows
https://alquimistadecodigo.blogspot.com/2020/07/powershell.html
https://adamtheautomator.com/powershell-classes/
https://devblogs.microsoft.com/scripting/powershell-5-create-simple-class/
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_classes?view=powershell-7.2
Comentarios
Publicar un comentario