constructor: Los constructores son métodos de clase que se ejecutan automáticamente cuando se crea un objeto de un tipo determinado. Normalmente, los constructores inicializan los miembros de datos del nuevo objeto. Un constructor solo puede ejecutarse una vez cuando se crea una clase. Además, el código del constructor siempre se ejecuta antes que cualquier otro código en una clase. Sin embargo, puede crear varias sobrecargas del constructor de la misma forma que para cualquier otro método.
Para definir un constructor para una clase:
public class SampleClass { public SampleClass() { // Add code here } }
Los destructores: se utilizan para destruir instancias de clases. En .NET Framework, el recolector de elementos no utilizados administra automáticamente la asignación y la liberación de memoria para los objetos administrados en la aplicación. Sin embargo, es posible que aún se necesiten destructores para limpiar cualquiera de los recursos no administrados creados por la aplicación. Solo puede haber un destructor para una clase.
como se define una clase: Utilice Instrucción Class (Visual Basic) para definir una clase a partir de la cual crea el objeto que necesita.
Public Class reversibleButton
Asegúrese de que sigue una instrucción End Class después de la última línea de código de la clase. De manera predeterminada, el entorno de desarrollo integrado (IDE) genera automáticamente End Class cuando escribe una instrucción Class.
Agregue Inherits (Instrucción) inmediatamente después de la instrucción Class. Especifique la clase de la que se deriva su nueva clase.
Inherits System.Windows.Forms.Button
Su nueva clase hereda todos los miembros definidos por la clase base.
Agregue el código para los miembros adicionales que expone la clase derivada. Por ejemplo, puede agregar un método reverseColors y su clase derivada podría aparecer del modo siguiente:
Public Class reversibleButton
Inherits System.Windows.Forms.Button
Public Sub reverseColors()
Dim saveColor As System.Drawing.Color = Me.BackColor
Me.BackColor = Me.ForeColor
Me.ForeColor = saveColor
End Sub
End Class
como se instancia una clase: Una vez que tenemos una clase definida, lo único de lo que disponemos es de una especie de plantilla o molde a partir del cual podemos crear objetos en memoria. Para crear esos objetos en Visual C# 2005 lo podemos hacer de dos formas, pero como veremos siempre será mediante la instrucción new que es la encargada de crear el objeto en la memoria y asignar la dirección del mismo a la variable usada en la parte izquierda de la asignación.
Declarar primero la variable y después instanciarla
Lo primero que tenemos que hacer es declarar una variable del tipo que queremos instanciar, esto lo hacemos de la misma forma que con cualquier otro tipo de datos
viernes, 27 de septiembre de 2013
viernes, 20 de septiembre de 2013
terminología de POO(Programación Orientada a Objetos).
Herencia
Las clases no están aisladas, sino que se relacionan entre
sí, formando una jerarquía de clasificación. Los objetos heredan las
propiedades y el comportamiento de todas las clases a las que pertenecen. La
herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo
a los objetos ser definidos y creados como tipos especializados de objetos
preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener
que volver a implementarlo. Esto suele hacerse habitualmente agrupando los
objetos en clases y estas en árboles o enrejados que reflejan un comportamiento
común. Cuando un objeto hereda de más de una clase se dice que hay herencia
múltiple.
Ejemplo
Java: import javax.*;
import
javax.swing.JOptionPane;
public
class Mamifero{
private int patas;
private String nombre;
public void imprimirPatas(){
JOptionPane.showMessageDialog(null,"
Tiene " + patas + " patas\n", "Mamifero",
JOptionPane.INFORMATION_MESSAGE);
}
public Mamifero(String nombre, int patas){
this.nombre = nombre;
this.patas = patas;
}
}
public
class Perro extends Mamifero {
public Perro(String nombre){
super(nombre, 4);
}
}
public
class Gato extends Mamifero {
public Gato(String nombre){
super(nombre, 4);
}
}
public
class CrearPerro {
public static void main(String[] args) {
Perro perrito = new
Perro("Pantaleon");
perrito.imprimirPatas(); /*Está
en la clase mamífero*/
}
}
Polimorfismo
Comportamientos diferentes, asociados a objetos distintos,
pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el
comportamiento correspondiente al objeto que se esté usando. O, dicho de otro
modo, las referencias y las colecciones de objetos pueden contener objetos de
diferentes tipos, y la invocación de un comportamiento en una referencia
producirá el comportamiento correcto para el tipo real del objeto referenciado.
Cuando esto ocurre en "tiempo de ejecución", esta última característica
se llama asignación tardía o asignación dinámica. Algunos lenguajes
proporcionan medios más estáticos (en "tiempo de compilación") de
polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
Encapsulamiento
Significa reunir todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite
aumentar la cohesión de los componentes del sistema. Algunos autores confunden
este concepto con el principio de ocultación, principalmente porque se suelen
emplear conjuntamente.
ejemplo
# include
<iostream.h>
class Caja
{
double longitud, anchura, altura;
public:
void set (double dim1, double dim2, double
dim3);
void print (void);
double getLongitud (void);
};
void Caja
:: set (double dim1, double dim2, double dim3)
{
longitud = dim1;
anchura = dim2;
altura = dim3;
};
void Caja
:: print (void)
{
cout << "longitud = "
<< longitud <<'\n';
cout << "anchura = "
<< anchura <<'\n';
cout << "altura = "
<< altura <<'\n';
};
double
Caja:: getLongitud (void) {
return longitud;
};
main ()
{
double
longitud; Caja pequeña, mediana,
grande;
pequeña.set(5, 4,
10);
mediana.set (10, 6,
20);
grande.set (20, 10, 30);
pequeña.print();
mediana.print();
grande.print();
longitud = grande.getLongitud();
cout << "longitud de la
caja grande = " << longitud <<'\n';
}
Abstracción
Denota las características esenciales de un objeto, donde se
capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un
"agente" abstracto que puede realizar trabajo, informar y cambiar su
estado, y "comunicarse" con otros objetos en el sistema sin revelar
cómo se implementan estas características. Los procesos, las funciones o los
métodos pueden también ser abstraídos, y, cuando lo están, una variedad de
técnicas son requeridas para ampliar una abstracción. El proceso de abstracción
permite seleccionar las características relevantes dentro de un conjunto e
identificar comportamientos comunes para definir nuevos tipos de entidades en
el mundo real. La abstracción es clave en el proceso de análisis y diseño
orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de
clases que permitan modelar la realidad o el problema que se quiere atacar.
Ejemplo : Pensar en términos de objetos es muy parecido a
cómo lo haríamos en la vida real. Una analogía sería modelizar un coche en un
esquema de POO. Diríamos que el coche es el elemento principal que tiene una
serie de características, como podrían ser el color, el modelo o la marca.
Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en
marcha, parar o aparcar. En un esquema POO el coche sería el objeto, las
propiedades serían las características como el color o el modelo y los métodos
serían las funcionalidades asociadas como ponerse en marcha o parar.
Por poner otro ejemplo vamos a ver cómo modelizaríamos en un
esquema POO una fracción, es decir, esa estructura matemática que tiene un
numerador y un denominador que divide al numerador, por ejemplo 3/2. La
fracción será el objeto y tendrá dos propiedades, el numerador y el
denominador. Luego podría tener varios métodos como simplificarse, sumarse con
otra fracción o número, restarse con otra fracción, etc.
Estos objetos son utilizables en los programas, por ejemplo
en un programa de matemáticas se puede hacer uso de objetos fracción y en un
programa que gestione un taller de coches, objetos coche. Los programas
orientados a objetos utilizan muchos objetos para realizar las acciones que se
desean realizar y ellos mismos también son objetos. Es decir, el taller de
coches será un objeto que utilizará objetos coche, herramienta, mecánico,
recambios, etc.
interfaz
En informática, esta
noción se utiliza para nombrar a la conexión física y funcional entre dos
sistemas o dispositivos de cualquier tipo dando una comunicación entre
distintos niveles. Su plural es interfaces.
El manejo de las GUI requiere de un dispositivo señalador
(por ejemplo, un ratón).
Clase
Definiciones de las propiedades y comportamiento de un tipo
de objeto concreto. La instanciación es la lectura de estas definiciones y la
creación de un objeto a partir de ellas.
Atributos
Características que tiene la clase
Un buen ejemplo es el proceso de asignación de valores XML a
las propiedades (elementos). Tenga en cuenta que el valor del elemento se
encuentra antes de la etiqueta de cierre (por separado), no en el propio
elemento. El mismo elemento puede tener una serie de atributos establecidos
(Nombre = "estoesunapropiedad").
Si el elemento en cuestión puede ser considerado una
propiedad (Nombre_Cliente) de otra entidad (digamos "cliente"), el
elemento puede tener cero o más atributos (propiedades) de su propio
(Nombre_Cliente es de Tipo = "tipotexto").
Un atributo de un objeto por lo general consiste de un
nombre y un valor; de un elemento, un tipo o nombre de clase; de un archivo, un
nombre y extensión.
Cada atributo nombrado tiene asociado un conjunto de reglas
denominadas operaciones: uno no agrega caracteres o manipula y procesa una
matriz de enteros como una imagen ni procesa texto como tipo de coma flotante
(números decimales).
Por tanto, una definición de objeto se puede ampliar
mediante la imposición de tipos de datos: un formato de representación, un
valor por defecto, y las operaciones legales (normas) y restricciones
("¡División por cero no está permitida!") Son todos los que podrían
participar en la definición un atributo, o por el contrario, se puede decir que
son atributos de ese tipo de objeto. Un archivo JPEG no es decodificado por las
mismas operaciones (por muy similares que sean, estos son todos formatos de
datos de gráficos) como un archivo BMP o PNG, ni es un número de coma flotante
operado por las normas aplicadas al los enteros largos.
Por ejemplo, en computación gráfica los objetos de planos
pueden tener atributos tales como espesor (con valores reales), color (con
valores descriptivos como el marrón o verde o los valores definidos en un
cierto modelo de color, como RGB), etc Un objeto círculo se puede definir con
atributos similares, como un origen y radio.
Lenguajes de marca, como HTML y XML, utilizan los atributos
para describir los datos y el formato de los datos.
Método
Algoritmo asociado a un objeto (o a una clase de objetos),
cuya ejecución se desencadena tras la recepción de un "mensaje".
Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un
método puede producir un cambio en las propiedades del objeto, o la generación
de un "evento" con un nuevo mensaje para otro objeto del sistema.
ejemplo
Clase Poligono {
atributo arregloDePuntosEnElPlanoCartesiano;
metodo Area calcularArea( ) {
- procedimiento para calcular el area dentro de todo el
arreglo de puntos en el
plano cartesiano.
- devolver Area calculada
}
}
Instancia
En el paradigma de la orientación a objetos, una instancia
(en inglés, instance) se refiere a una realización específica de una clase o
prototipo determinados.
En general, cuando se ejecuta un programa en un computador,
se dice que éste se instancia. En lenguajes que crean objetos a partir de
clases, un objeto es una instancia de una clase. Esto es, es un miembro de una
clase que tiene atributos en lugar de variables. En un contexto del mundo real,
podríamos pensar en "Perro" como una clase y en un perro concreto en
una instancia de esta clase.
En Java, por ejemplo, si tenemos una clase definida como:
public class Perro {}
Podremos acceder a la instancia que representa la clase (y
es una instancia de la clasejava.lang.Class<Perro>), en un programa
principal de clase Main, del siguiente modo:
public class Main {
public static void main(String... args) {
Class<?> perroClass = Perro.class;
System.out.println(perroClass); }
}
Objeto
Instancia de una clase. Entidad provista de un conjunto de
propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos),
los mismos que consecuentemente reaccionan a eventos. Se corresponden con los
objetos reales del mundo que nos rodea, o con objetos internos del sistema (del
programa). Es una instancia a una clase.
Por ejemplo: dado un plano para construir sillas (una clase
de nombre clase_silla), entonces una silla concreta, en la que podemos
sentarnos, construida a partir de este plano, sería un objeto de clase_silla.
Es posible crear (construir) múltiples objetos (sillas) utilizando la
definición de la clase (plano) anterior. Los conceptos de clase y objetos son
análogos a los de tipo de datos y variable; es decir, definida una clase
podemos crear objetos de esa clase, igual que disponiendo de un determinado
tipo de dato (por ejemplo el tipo entero), podemos definir variables de dicho
tipo:
int a,b;
Concurrencia
Dos o más procesos decimos que son concurrentes, paralelos,
o que se ejecutan concurrentemente, cuando son procesados almismo tiempo, es
decir, que para ejecutar uno de ellos, no hace falta que se haya ejecutado
otro.
En sistemas multiprocesador, esta ejecución simultánea
podría conseguirse completamente, puesto que podremos asignarle, porejemplo, un
proceso A al procesador A y un proceso B al procesador B y cada procesador
realizaran la ejecución de su proceso.
Ejemplo:
En el hardware (la herramienta
para solucionar el problema):
ejecución paralela de
instrucciones
funcionamiento paralelo de los
periféricos
procesadores múltiples
sistemas distribuidos
Cuando tenemos un solo procesador se producirá un
intercalado delas instrucciones de ambos procesos, de tal forma que tendremos
la sensación de que hay un paralelismo en el sistema (concurrencia, ejecución
simultánea de más de un proceso).
Ahora bien, está claro que en esto tenemos que tener en
cuenta que mientras un proceso está escribiendo unvalor en una variable
determinada, puede darse el caso que otro proceso que es concurrente al primero
vaya aleer o escribir en esa misma variable, entonces habráque estudiar el caso
en el que un proceso haga unaoperación sobre una variable (o recurso en
general) yotro proceso concurrente a él realice otra operación detal forma que
no se realice correctamente. Para estudiaresto, y determinar el tipo de
operaciones que se puedenrealizar sobre recursos compartidos utilizaremos
lascondiciones de Bernstein.
Ejemplo:
Productor-Consumidor ejecutado
concurrentemente.
– Productor: Genera
información y la acumula en un buffer.
– Consumidor: Accede
al buffer y usa la información.
– Caso de:
• Programa de
impresión que produce caracteres y consume
el manejador de la
impresora.
• Compilador produce
código ensamblador y consume el
Ensamblador
Persistencia
se refiere a la propiedad de los datos para que estos
sobrevivan de alguna manera.De forma sencilla puede entenderse que los datos
tienen una duración efímera; desde el momento en que estos cambian de valor se
considera que no hay persistencia de los mismos. Sin embargo en informática hay
varios ámbitos donde se aplica y se entiende la persistencia.
Dim x As
Collection
Dim y As
Collection
Dim dia As
String
Set x = New
Collection
x.Add ("Domingo")
x.Add ("Jueves")
Set y = x
dia =
y.Item(1)
MsgBox dia
y.Add ("Sábado")
dia = x.Item(3)
MsgBox dia
Set x =
nothing
dia =
y.Item(1)
MsgBox dia
Visibilidad
Capacidad de restringir el acceso a atributos y servicios de
un objeto. Particularmente importante en el diseño e implementación. (ej.: público / protegido / privado)
Suscribirse a:
Entradas (Atom)


