Mostrando las entradas con la etiqueta clase. Mostrar todas las entradas
Mostrando las entradas con la etiqueta clase. Mostrar todas las entradas

viernes, 14 de agosto de 2015

Objetos en Javascript

Los tipos de datos más simples que maneja Javascript son: numbers, strings, booleans (true o false), null y undefined. Numbers, strings y booleans son como objetos porque tienen métodos, pero estos son inmutables, es decir, no se pueden modificar una vez estos han sido creados.

En Javascript los arreglos son objetos, las funciones son objetos, las expresiones regulares son objetos, y ni hablar de los mismos objetos. Los objetos son caracteristicos por tener propiedades binarias, es decir, <nombre/valor>.


Objetos Literales

Los objetos literales son caracteristicos porque poseen una notación muy particular, se trata de un par de llaves las cuales envuelven las propiedades binarias <nombre/valor>:


// objeto literal vacio
var Persona = {};

//objeto literal con propiedades
var Persona ={
  nombre: "",
  "primer-apellido": "",
  segundo_apellido: "",
  edad: 30,
  sexo: ''
}; 

El nombre de la propiedad del objeto puede ser cualquier cosa. En el objeto Persona hay propiedades que estan entre comillas dobles y otras que no, el uso de comillas dobles para la declaración de las propiedades no es obligatorio y si no se quiere aplicar no deberia ser ningun problema, pero para propiedades como primer-apellido el cual contiene un guión en la mitad, Javascript no lo reconoce como una sola palabra, por lo cual muestra un error si se usara de tal manera, si se desea usar de tal forma se debe rodear el nombre de la propiedad entre comillas, para agregar varias palabras a una propiedad se recomienda usar un guión bajo para que no presente ningun problema como por ejemplo segundo_apellido, omitiendo asi el uso de comillas.

Para acceder a la información almacenada en las propiedades del objeto normalmente se emplean dos notaciones: corchetes "[propiedad]" y  punto ".", la notación "." es la preferida y más común debido a que es mas compacta y legible:


//Actualizar los valores de las propiedades
Persona.nombre = "juan"
Persona["primer-apellido"]  = "perez"
Persona.segundo_apellido = "real"
Persona.edad = 30

//acceso a propiedades de un objeto
Persona.nombre              //juan
Persona["primer-apellido"]  //perez
Persona.segundo_apellido    //real
Persona.edad                // 30


Objetos Función

Las funciones en javascript son objetos, los objetos función estan enlazados a function.prototype, la cual es una propiedad que esta incluida en cada objeto función creado cuyo valor es un objeto con una propiedad constructor en donde el valor de este es la función.


Los objetos función se crean mediante funciones literales:


//Declaración de la clase Persona
var Persona = function(){
   this.nombre = "juan";
   this.primer_apellido = "perez";
   this.segundo_apellido = "real";
   this.edad = 30;
};


//Instanciación del objeto persona
 var persona = new Persona();

//acceso a los atributos
persona.nombre               //juan
persona.primer_apellido      //perez
persona["segundo_apellido"]  //real
persona["edad"]              //30

miércoles, 6 de agosto de 2014

Crear una clase en Python



En este blog vamos a crear una clase en Python con algunos métodos.

Para ello se crea un archivo llamado clases.py en el que se incluirá todo el código.

Una vez creado el archivo, se crea una clase llamada OperacionesMatematicas en la que se incluirán los métodos operativos. Así:


Para crear la clase se utiliza la palabra reservada class del lenguaje, seguido del nombre que llevará la clase, como lo muestra la imagen anterior.

Una vez creada la clase se escribe todo su contenido en las lineas siguientes y dejando un espacio de izquierda a derecha (Tabulado) según se tenga configurado en cada editor te texto. En este ejemplo se trabaja con el editor Sublime Text 3 el cual viene con un tabulado de 4 espacios por defecto, suficiente para que la indentación se pueda notar en el archivo clases.py.

Indentación es el concepto de mover un bloque o lineas de código cierta cantidad de espacios a la derecha para que este sea más legible y genere más orden en el código.

En Python es muy importante este concepto ya que permite delimitar el inicio y el final de un bloque de código conformando asi la estructura del programa debidamente ordenada. la cantidad de espacios es relativa, ya depende del programador la cantidad que le sea conveniente manejar.
 
En la imagen anterior se da un ejemplo de indentación.  El método de la linea 3 hace parte de la clase ya que éste está tabulado lo cual genera orden y facilidad para identificar los métodos de la clase. El método de la linea 5 esta por fuera de la clase ya que éste no ha sido indentado (Tabulado) y sigue la misma margen de la clase.


Continuando con el ejercicio primero se declara el método init (constructor) el cual se ejecuta por defecto cuando se haga el llamado a la clase, aun así  cuando no esté declarado, éste se ejecuta por defecto una vez se cree el objeto:


Se pasan dos argumentos por valor (a y b) al constructor los cuales se usarán para realizar los cálculos matemáticos, como también se pasa el argumento self.

self es el argumento que va incluido en cada método de una clase siendo éste una referencia a la instancia actual de la clase, en el constructor  referencia al objeto creado recientemente, y en los demás métodos se refiere a la instancia cuyo método ha sido llamado.
Se usa para referenciar a las demás variables.
Cuando se invoca un método no se especifica este argumento, ya que Python lo hace de manera automática.

Se declara una variable self.a la cual se inicializa con el valor del argumento a (Linea 4).
Se declara una variable self.b la cual se inicializa con el valor del argumento b (Linea 5).

Se declaran los métodos matemáticos a implementar (suma, resta, producto, división):


se realiza la operación correspondiente a cada método (Lineas 8, 11, 14 y 18).
en la linea 17 se evalúa el valor de la variable b  condicionando que si el valor de b es diferente de cero, entonces puede realizar el calculo correspondiente, de lo contrario arroja un mensaje de Error!, ya que las divisiones sobre cero retornan un valor nulo o indefinido.

El script completo seria:
 

En la linea 24 se crea una instancia de la clase OperacionesMatematicas inicializando las variables a y b con los valores (20 , 12) respectivamente.
Y luego solo se llaman los métodos matematicos de la clase.

Para ejecutar este script se abre la consola, se ubica en la carpeta que contiene el archivo .py  y se digita el comando python seguido del nombre del archivo, dando como resultado:



Únete a la página de Python en