sábado, 5 de febrero de 2011

Visual Basic.Net 2008


Este trabajo sirve para saber para qué sirve el P.O.O que objetos tiene clases y otras cosas mas que tenga este tema también nos servirá como es el funcionamiento de otras cosas mas como por ejemplo la encapsulación  la abstracción y otros temas que pertenecen al P.O.O












La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción,polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.



Los objetos son entidades que combinan estado (atributo), comportamiento (método) e identidad:
El estado está compuesto de datos, será uno o varios atributos a los que se habrán asignado unos valores concretos (datos).
El comportamiento está definido por los procedimientos o métodos con que puede operar dicho objeto, es decir, qué operaciones se pueden realizar con él.
La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante).
Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados métodos, que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.




Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podría producir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen a las primeras por el otro. De esta manera se estaría realizando una programación estructurada camuflada en un lenguaje de programación orientado a objetos.
La POO difiere de la programación estructurada tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada sólo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.




En orientación a objetos la herencia es el mecanismo fundamental para implementar la reutilización y extensibilidad del software. A través de ella los diseñadores pueden construir nuevas clases partiendo de una jerarquía de clases ya existente (comprobadas y verificadas) evitando con ello el rediseño, la remodificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes.
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 superclase, de manera que extiende su funcionalidad. Una de sus funciones más importantes es la de proveer Polimorfismo y late binding

  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("Canelita");
      perrito.imprimirPatas();   /*Está en la clase mamífero*/
    }
  }




En general, polimorfismo describe múltiples y posibles estados de una única propiedad.
En biología, un polimorfismo genético son los múltiples alelos de un gen entre una población, normalmente expresados como diferentes fenotipos (p.e. el color de la piel es un polimorfismo).
En ciencia de los materiales y en mineralogía, capacidad de un material sólido de existir en más de una forma o estructura cristalina, todas ellas con la misma composición de elementos químicos. Por ejemplo, el diamante y el grafito son polimorfos del carbono. La α-ferrita, la austenita y la δ-ferrita son polimorfos del hierro. Cuando esta propiedad se da en compuestos formados por un único elemento se denomina también alotropía.
En computación (informática), es también una técnica utilizada por virus informáticos y gusanos para modificar partes de su código dificultando su detección. Véase Polimorfismo (virus informáticos)

En morfosintaxis (semántica)se refiere a la posibilidad de un mismo vocablo de poseer formas distintas, con variantes combinatorias diversas dentro de su estructura morfológica. El polimorfismo se evidencia en el proceso de evolución de la lengua, en el cual cada cambio en la estructura del signo puede repercutir con mayor o menos intensidad en su significación: cesta tique, cesta triste (por lo poco que pagan); fe de erratas, fe de ratas (por la mala intensión de algunos); matrimonio, matricidio, casamiento.









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.
De esta forma el usuario de la clase puede obviar la implementación de los métodos y propiedades para concentrarse sólo en cómo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas.

1.   Estándar (Predeterminado)
2.   Abierto: Hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase y cualquier parte del programa.
3.   Protegido: Solo es accesible desde la Clase y las clases que heredan (a cualquier nivel).
4.   Semi cerrado : Solo es accesible desde la clase heredada
5.   Cerrado: Solo es accesible desde la Clase.
En el encapsulamiento hay analizadores que pueden ser semánticos ysintácticos.




Simula (1967) es aceptado como el primer lenguaje que posee las características principales de un lenguaje orientado a objetos. Fue creado para hacer programas de simulación, en donde los "objetos" son la representación de la información más importante. Smalltalk (1972 a 1980) es posiblemente el ejemplo canónico, y con el que gran parte de la teoría de la programación orientada a objetos se ha desarrollado.
Entre los lenguajes orientados a objetos se destacan los siguientes:
ABAP,ABL Lenguaje de programación de OpenEdge de Progress Software,,ActionScript,ActionScript 3,Ada,C++,C#,Clarion

Clipper (lenguaje de programación), (Versión 5.x con librería de objetos ,Class(y)),D,Object Pascal (Delphi),Gambas,Harbour,Eiffel,Java

JavaScript (la herencia se realiza por medio de la programación basada en prototipos),Lexico (en castellano),Objective-C,Ocaml,Oz,R

Perl (soporta herencia múltiple. La resolución se realiza en preorden, pero puede modificarse al algoritmo linearization C3 por medio del módulo Class::C3 en CPAN),PHP (a partir de su versión 5),PowerBuilder

Python,Ruby,Smalltalk (Proyecto investigativo. Influenció a Java.)Magik (SmallWorld),Vala,VB.NET,Visual FoxPro (en su versión 6)


Muchos de estos lenguajes de programación no son puramente orientados a objetos, sino que son híbridos que combinan la POO con otros paradigmas.
Al igual que C++ otros lenguajes, como OOCOBOLOOLISPOOPROLOG y Object REXX, han sido creados añadiendo extensiones orientadas a objetos a un lenguaje de programación clásico.
Un nuevo paso en la abstracción de paradigmas de programación es la Programación Orientada a Aspectos (POA). Aunque es todavía una metodología en estado de maduración, cada vez atrae a más investigadores e incluso proyectos comerciales en todo el mundo.

No hay comentarios:

Publicar un comentario