Los tres principios de la P.O.O.

Por Sandra D - 13 de Abril, 2008, 9:55, Categoría: General

Todos los lenguajes orentados a objetos proporcionan mecanismos que ayudan a implementar el modelo orientado a objetos. Estos mecanismos son:

  • el encapsulado,
  • la herencia y
  • el polimorfismo

ENCAPSULADO

 

El encapsulado es el mecanismo que permite juntar el código y los datos que manipula, y que mantiene ambos alejados de posibles interferencias y usos indebidos.

 

z El acceso al código se realiza de forma controlada a través de una interfaz bien definida.

 

Los lenguajes O.O proveen regularmente un mecanismo para manejar el encapsulamiento a través de un concepto conocido como niveles de visibilidad. Algunos de ellos son:

 

  • Público, un elemento con este nivel de acceso es visible desde cualquier parte del programa, no existe ninguna restricción de visibilidad.

  • Privado, el elemento solo es accesible desde dentro de la clase donde se define

  • Privado Protegido, es accesible por la propia clase en que se define, y cualquiera de las clases derivadas, sin importar donde estén ubicadas

  • Amigable, un atributo friendly es visible desde la clase en que se define y en cualquier otra clase del mismo paquete. Una subclase en otro paquete no tendrá acceso a dicho atributo.

  • Protegido, solo es accesible por la clase en que se define, por sus subclases, estén donde estén, y por otras clases del mismo paquete (subsistema).

 

HERENCIA

 

La herencia es el proceso mediante el cual un objeto adquiere las propiedades de

otro. Importancia:

z Clasificación jerárquica

z Si no se usara la jerarquía cada objeto debería definir todas sus características.

z La herencia permite a un objeto ser una instancia específica de un caso más general.

z Ejemplos: Animal-Mamífero-Vaca, Persona- Estudiante-Egresado.

 

z Puede existir una clase “raíz” en la jerarquía de la cual heredan las demás directa o indirectamente.

z Incluye todas las características comunes a todas las clases

 

Si B hereda de A entonces B incorpora la estructura (atributos) y comportamiento (métodos) de la clase A, pero puede incluir adaptaciones:

 

- B puede añadir nuevos atributos

- B puede añadir nuevos métodos

- B puede REDEFINIR métodos -à •Refinamiento: Extender el uso original

       •Reemplazo: Mejorar la implementación

 

- B puede renombrar atributos o métodos

- B puede implementar un método diferido en A

 

EL PROCESO DE HERECIA ES TRANSITIVO

 

B hereda de A

C hereda de B y A

B y C son descendientes (subclases) de A

B es un descendiente directo de A

C es un descendiente indirecto de A

A

B

C B hereda de A

B es descendiente de A

A es un ascendiente de B

B es subclase de A

A es superclase de B

B es una clase derivada de A

 

TERMINOLOGÍA

El proceso de herencia es transitivo

 

Herencia simple

 

– Una clase puede heredar de una única clase.

 

Herencia múltiple

 

– Una clase puede heredar de varias clases.

– Clases forman un grafo dirigido aciclíco

 

POLIMORFISMO

 

El polimorfismo (del griego muchas formas) es una característica que le

permite a una interfaz ser utilizada por una clase general de acciones. La acción que se realiza depende del contexto.

 

 “Una interfaz, múltiples métodos”

 

http://eisc.univalle.edu.co/materias/Material_Desarrollo_Software/LPOO_finalLuish97.pdf

Permalink ~ Comentar | Referencias (0)

Breve historia de Java

Por Sandra D - 13 de Abril, 2008, 9:48, Categoría: General

A finales de la década de los 80 Sun Microsystems inicia un proyecto de investigación encabezado por James Gosling con el propósito de desarrollar un lenguaje de programación para dispositivos electrónicos como tostadoras, hornos microondas y asistentes digitales personales. Gosling y su equipo de investigación llegaron a la conclusión de que el software para dispositivos de consumo tiene algunos requerimientos de diseño únicos.

            Por ejemplo, el software necesita ser capaz de trabajar en nuevos chips de computadora. Cuando los chips son introducidos, los fabricantes más de una vez los cambian por otros por ser más baratos o introducir nuevos mecanismos. El software también necesita ser extremadamente inteligente, porque cuando un producto del consumidor falla, el fabricante usualmente tiene que reemplazar todo el dispositivo y no el componente que originó el fallo.

 

            Gosling y su equipo también descubrieron que existían lenguajes de programación como C y C++ con los cuales no se podía realizar la tarea de hacer un software que fuera independiente de la arquitectura en donde se este ejecutando. Un programa escrito en C o C++ debe ser compilado para un chip de computadora particular. Cuando se cambia de chip el programa debe ser recompilado. La complejidad de C y C++ también hace extremadamente dificultoso escribir software fiable.

 

            Como resultado de lo dicho anteriormente, en 1990 Gosling comenzó a diseñar un nuevo lenguaje de programación que fuera mas apropiado para dispositivos que utilizan software electrónico. Este lenguaje fue conocido originalmente como Oak. Fue pequeño, de fiar e independiente de la arquitectura. En 1993 cuando el equipo de Java continuaba trabajando en el diseño del nuevo lenguaje, la Word Wide Web apareció y tomó a todos por sorpresa. El equipo de Java pensó que un lenguaje de arquitectura neutral sería ideal para programar en la Internet, porque un programa correría en todos los diferentes tipos de computadoras conectadas a Internet. Y fue un hecho; todas las metas alcanzadas con las investigaciónes anteriores coincidentemente sirvieron idealmente para la programación en Internet.

 

En ese momento el desarrollo de Java se tornó en un asunto de mayor importancia para Sun. El equipo escribió un navegador Web llamado HotJava, que fue el primero en soportar applets de Java. Un applet es un pequeño programa que puede ser incrustado en una página Web. Puedes incluir un applet en un documento HTML para proporciónar interactividad y dar vida a una página Web. HotJava demostró el poder del lenguaje Java y lo puso de moda entre los programadores y el resto de la gente. Y lo demás es historia.

 

Los programadores comenzaron con la versión Alpha de Java que Sun puso a disposición de toda la gente, creando las clasificaciónes de applets más maravillosas. La experiencia de Sun y la retroalimentación por parte de los usuarios ayudaron a refinar el lenguaje y la interfaz de programación de aplicaciónes (API). Al mismo tiempo que Sun sacó la versión Beta de el lenguaje, Netscape anunció que la version 2.0 del Web browser, Netscape Navigator soportaría applets de Java. Esto sivió para incrementar el fuerte interés en la tecnología Java, en el mundo de la computación y en Internet.

Con compañías como IBM, SGI y Oracle licenciando la tecnología Java de Sun se puede estar seguro de que más productos de software y hardware incorporarán la tecnología Java.

Fuente:  Tutorial de Java de Javier Pérez Delgado

Permalink ~ Comentar | Referencias (0)

Introducción al Java

Por Sandra S. - 13 de Abril, 2008, 9:09, Categoría: General

                                       Java es un nuevo lenguaje de programación orientado a objetos desarrollado por Sun Microsystems. Sun describe al lenguaje Java de la siguiente manera: Simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto rendimiento, multitarea y dinámico

Simple: porque fue diseñado con la finalidad de que resultara sencillo de aprender para los programadores profesionales y de que su uso fuera eficaz.

Orientado a objetos: al contrario de otros lenguajes , Java no es un lenguaje modificado para trabajar con objetos sino que fue creado especialmente para trabajar con objetos. El modelo de objetos es sencillo y fácil de ampliar .

Robusto: Java verifica su código al mismo tiempo que lo escribe, y una vez más antes de ejecutarse, de manera que se consigue un alto margen de codificación sin errores. Se realiza un descubrimiento de la mayor parte de los errores durante el tiempo de compilación, ya que Java es estricto en cuanto a tipos y declaraciones, y así lo que es rigidez y falta de flexibilidad se convierte en eficacia. Respecto a la gestión de memoria, Java libera al programador del compromiso de tener que controlar especialmente la asignación que de ésta hace a sus necesidades específicas. Este lenguaje posee una gestión avanzada de memoria llamada gestión de basura, y un manejo de excepciones orientado a objetos integrados. Estos elementos realizarán muchas tareas antes tediosas a la vez que obligadas para el programador

Seguro: Existe una preocupación lógica en Internet por el tema de la seguridad: virus, caballos de Troya, y programas similares navegan de forma usual por la red, constituyendo una amenaza palpable. Java ha sido diseñado poniendo un énfasis especial en el tema de la seguridad, y se ha conseguido lograr cierta inmunidad en el aspecto de que un programa realizado en Java no puede realizar llamadas a funciones globales ni acceder a recursos arbitrarios del sistema, por lo que el control sobre los programas ejecutables no es equiparable a otros lenguajes.

Los niveles de seguridad que presenta son:

  • Fuertes restricciones al acceso a memoria, como son la eliminación de punteros aritméticos y de operadores ilegales de transmisión.

  • Rutina de verificación de los códigos de byte que asegura que no se viole ninguna construcción del lenguaje.

  • Verificación del nombre de clase y de restricciones de acceso durante la carga.

  • Sistema de seguridad de la interfaz que refuerza las medidas de seguridad en muchos niveles.

de arquitectura neutral:

  • El Java es un lenguaje multiplataforma. Existen compiladores de Java para la mayoría de las plataformas e interpretes de Java para todas.

  • Cuando el programa se suministra como Applet puede ejecutarse a partir de un navegador de la WWW.

  • El lenguaje Java ofrece bibliotecas de clases que permiten dominar las interfaces gráficas y el acceso a la red con facilidad.

  • El funcionamiento del programa Java es el mismo en todas las plataformas y sólo cambia la apariencia que se adapta a la del sistema operativo que lo ejecuta (windows, solaris, linux, etc.)

Portable: La indiferencia a la arquitectura representa sólo una parte de su portabilidad. Además, Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus operadores aritméticos, de manera que los programas son iguales en todas las plataformas.
Estas dos últimas características se conocen como la Máquina Virtual Java (JVM).

Multitarea o multihebra: Hoy en día ya se ven como terriblemente limitadas las aplicaciones que sólo pueden ejecutar una acción a la vez. Java soporta sincronización de múltiples hilos de ejecución (multithreading) a nivel de lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así, mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario mientras otro presenta una animación en pantalla y otro realiza cálculos.

Dinámico: El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.

Dinámico: El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.

Los niveles de seguridad que presenta son:

  • Fuertes restricciones al acceso a memoria, como son la eliminación de punteros aritméticos y de operadores ilegales de transmisión.

  • Rutina de verificación de los códigos de byte que asegura que no se viole ninguna construcción del lenguaje.

  • Verificación del nombre de clase y de restricciones de acceso durante la carga.

  • Sistema de seguridad de la interfaz que refuerza las medidas de seguridad en muchos niveles.

de arquitectura neutral:

  • El Java es un lenguaje multiplataforma. Existen compiladores de Java para la mayoría de las plataformas e interpretes de Java para todas.

  • Cuando el programa se suministra como Applet puede ejecutarse a partir de un navegador de la WWW.

  • El lenguaje Java ofrece bibliotecas de clases que permiten dominar las interfaces gráficas y el acceso a la red con facilidad.

  • El funcionamiento del programa Java es el mismo en todas las plataformas y sólo cambia la apariencia que se adapta a la del sistema operativo que lo ejecuta (windows, solaris, linux, etc.)

Portable: La indiferencia a la arquitectura representa sólo una parte de su portabilidad. Además, Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus operadores aritméticos, de manera que los programas son iguales en todas las plataformas.
Estas dos últimas características se conocen como la Máquina Virtual Java (JVM).

Multitarea o multihebra: Hoy en día ya se ven como terriblemente limitadas las aplicaciones que sólo pueden ejecutar una acción a la vez. Java soporta sincronización de múltiples hilos de ejecución (multithreading) a nivel de lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así, mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario mientras otro presenta una animación en pantalla y otro realiza cálculos.

Dinámico: El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.

Dinámico: El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.

Los niveles de seguridad que presenta son:

  • Fuertes restricciones al acceso a memoria, como son la eliminación de punteros aritméticos y de operadores ilegales de transmisión.

  • Rutina de verificación de los códigos de byte que asegura que no se viole ninguna construcción del lenguaje.

  • Verificación del nombre de clase y de restricciones de acceso durante la carga.

  • Sistema de seguridad de la interfaz que refuerza las medidas de seguridad en muchos niveles.

de arquitectura neutral:

  • El Java es un lenguaje multiplataforma. Existen compiladores de Java para la mayoría de las plataformas e interpretes de Java para todas.

  • Cuando el programa se suministra como Applet puede ejecutarse a partir de un navegador de la WWW.

  • El lenguaje Java ofrece bibliotecas de clases que permiten dominar las interfaces gráficas y el acceso a la red con facilidad.

  • El funcionamiento del programa Java es el mismo en todas las plataformas y sólo cambia la apariencia que se adapta a la del sistema operativo que lo ejecuta (windows, solaris, linux, etc.)

Portable: La indiferencia a la arquitectura representa sólo una parte de su portabilidad. Además, Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus operadores aritméticos, de manera que los programas son iguales en todas las plataformas.
Estas dos últimas características se conocen como la Máquina Virtual Java (JVM).

Multitarea o multihebra: Hoy en día ya se ven como terriblemente limitadas las aplicaciones que sólo pueden ejecutar una acción a la vez. Java soporta sincronización de múltiples hilos de ejecución (multithreading) a nivel de lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así, mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario mientras otro presenta una animación en pantalla y otro realiza cálculos.

Dinámico: El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.

Dinámico: El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.

Fuentes:

http://www.iec.csic.es/CRIPTONOMICON/java/quesjava.html

http://www.java.com/es/download/

http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/I_3.htm

Permalink ~ Comentar | Referencias (0)

El Blog

Calendario

     Abril 2008    
LMMiJVSD
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30     

Categorías

Archivos

Sindicación

Enlaces

Alojado en
ZoomBlog