Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase (informática)
Una clase es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de
ese tipo.
Una clase es un contenedor de uno o más datos (variables o propiedades miembro) junto a las
operaciones de manipulación de dichos datos (métodos). Las clases pueden definirse como
estructuras (struct), uniones (union) o clases (class) pudiendo existir diferencias entre cada una
de las definiciones según el lenguaje. Además las clases son agrupaciones de objetos que
describen su comportamiento.
class Nombre {
// Variables miembro (habitualmente privadas)
miembro_1; //lista de miembros
miembro_2;
miembro_3;
Instancia (informática)
Una instancia de un programa es una copia de una versión ejecutable del programa que ha
sido escrito en la memoria del computador.
Una instancia de un programa es creada típicamente por el click de usuario en un icono de una
interfaz Gráfica para usuarios GUI o por la entrada de un comando en una interfaz de línea de
comandos CLI y presionando la tecla ENTER. Instancias de programas pueden ser creadas por
otros programas.
Objeto (programación)
Herencia (informática)
Es la relación entre una clase general y otra clase más especifica. Por ejemplo: Si declaramos
una clase párrafo derivada de una clase texto, todos los métodos y variables asociadas con la
clase texto, son automáticamente heredados por la subclase párrafo.
La herencia es uno de los mecanismos de la programación orientada a objetos, por medio del
cual una clase se deriva de otra, llamada entonces clase base o clase padre,(a veces se le
denomina superclase pero no es muy comun), de manera que extiende su funcionalidad. Una
de sus funciones más importantes es la de proveer Polimorfismo.
Polimorfismo (informática)
Ejemplo de polimorfismo
#include<iostream>
using namespace std;
class figura {
public:
float base;
float altura;
public:
float captura();
virtual unsigned float perimetro()=0;
virtual unsigned float area()=0;
};
void figura::captura(){
cout<<"CALCULO DEL AREA Y PERIMETRO DE UN TRIANGULO
ISÓSCELES Y UN RECTANGULO:" <<endl;
cout<<"escribe la altura: ";
cin>>altura;
cout<<"escribe la base: ";
cin>>base;
cout<<"EL PERIMETRO ES:" << perimetro();
cout<<"EL AREA ES:" << area();
};
Atributos
Los atributos son las caracterísiticas individuales que diferencian un objeto de otro y
determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables
denominadas de instancia, y cada objeto particular puede tener valores distintos para estas
variables.
Las variables de instancia también denominados miembros dato, son declaradas en la clase
pero sus valores son fijados y cambiados en el objeto.
Además de las variables de instancia hay variables de clase, las cuales se aplican a la clase y a
todas sus instancias. Por ejemplo, el número de ruedas de un automóvil es el mismo cuatro,
para todos los automóviles.
Método (informática)
En la programación orientada a objetos, un método es una subrutina asociada exclusivamente
a una clase (llamados métodos de clase o métodos estáticos) o a un objeto (llamados
métodos de instancia). Análogamente a los procedimientos en los lenguajes imperativos, un
método consiste generalmente de una serie de sentencias para llevar a cabo una acción, un
juego de parámetros de entrada que regularán dicha acción y, posiblemente, un valor de salida
(o valor de retorno) de algún tipo.
• En algunos lenguajes de programación
orientados a objetos:
– Los objetos son datos
– Las clases son tipos de datos
• En ruby las clases también son objetos
de tipo Class:
10.class => FixNum
"hola".class => String
Fixnum.class => Class
String.class => Class
Float.class => Class
Class.class => Class
Accesores (Accessors)
Los Accesores en Ruby provienen de la clase Module, ellos permiten no tener que definir
métodos accesores esplícitamente (getters y setters). Además, permiten ahorar lineas
importantes de código.
attr
attr_reader
attr_writer
attr_accessor
attr
El módulo accesor attr crea un getter único, que incluye la creación de un método para
acceder a una variable de instancia con el mismo nombre.
El método que crea attr tiene el mismo nombre del símbolo que se le pasa a manera de
argumento (nombre). A su vez, la variable de instancia a la que permite el acceso también
tiene el mismo nombre del símbolo (@nombre).
Cabe destacar el segundo argumento, ese true. Este segundo argumento puede tomar dos
valores lógicos, true o false (no se escribe nada si es false). Si toma el valor true, el módulo attr
permite además de la creación de un getter, un setter (opcional, pues depende de si el
segundo argumento es true o false); si es false, se omite la creación del setter.
En resumen, veamos cómo nos facilita este accesor unas líneas de código:
Creamos una clase cualquiera:
class Todoruby
def initialize (nombre)
@nombre = nombre
end
def nombre
@nombre
end
end
class Todoruby
attr :nombre, true
end
Eso simplemente, ya que attr ya nos definió el método nombre y nos creó una variable de
instancia (@nombre) que permite acceder a ese método.
attr_reader
El módulo accesor attr_reader permite la creación de uno o más getters, que incluye la
creación de uno o más métodos para acceder a una o más variables de instancia con sus
nombres correspondientes.
Los métodos y las variables de instancia que crea attr_reader tienen igual nombre que sus
símbolos respectivos.
attr_reader se pasa sin más argumentos (no existe el argumento true como en attr).
attr_writer
El módulo accesor attr_writer permite la creación de uno o más setters, que incluye la creación
de uno o más métodos para acceder a una o más variables de instancia con sus nombres
correspondientes.
Los métodos y las variables de instancia que crea attr_writer tienen igual nombre que sus
símbolos respectivos.
attr_writer se pasa sin más argumentos (no existe el argumento true como en attr).
attr_accessor
El módulo accesor attr_accessor permite la creación de un attr_writer y un attr_reader para
cada variable de instancia que crean, representadas por el símbolo que se les pasa como
argumento.
class Persona
def nombre
@nombre
end
def nombre=(nombre)
@nombre = nombre
end
def edad
@edad
end
def edad=(edad)
@edad = edad
end
end
a esto:
class Persona
attr_accessor :nombre, :edad
end
Parámetros
En informática, un parámetro es un tipo de variable que es recibida por una función,
procedimiento o subrutina.
La semántica de cómo pueden ser declarados los parámetros y cómo los argumentos son
pasados a los parámetros de los procedimientos, son definidos por cada lenguaje de
programación.
Encapsulamiento (informática)
En programación modular, y más específicamente en programación orientada a objetos, se
denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro, de un
objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese
objeto.
Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a
un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un
objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando
efectos secundarios e interacciones.
Encapsulamiento Se dice que es el empaquetado de métodos y atributos dentro de un objeto,
mediante una interfaz gráfica. La clave está precisamente en el envoltorio del objeto .
Como se puede observar de los diagramas, las variables del objeto se localizan en el centro o
núcleo del objeto. Los métodos rodean y esconden el núcleo del objeto de otros objetos en el
programa. Al empaquetamiento de las variables de un objeto con la protección de sus
métodos se le llama encapsulamiento. Típicamente, el encapsulamiento es utilizado para
esconder detalles de la puesta en práctica no importantes de otros objetos. Entonces, los
detalles de la puesta en práctica pueden cambiar en cualquier tiempo sin afectar otras partes
del programa.
Formas de encapsular
Estándar (Predeterminado)
Abierto: Hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase y
cualquier parte del programa.
Protegido: Solo es accesible desde la Clase y las clases que heredan (a cualquier nivel).
Semi cerrado: Solo es accesible desde la clase heredada
Cerrado: Solo es accesible desde la Clase.
En el encapsulamiento hay analizadores que pueden ser semánticos y sintácticos.