Yerotaro’s Weblog

Septiembre 5, 2008

QUE ES LA POO?

Archivado en: POO — yerotaro @ 4:26 am
Tags:

 

bp1.blogger.com/…/V2ilZx92z28/S660/poo.png

CONCEPTO 1:

La Programación Orientada a Objetos (POO u 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 de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo, y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.[1]

 

CONCEPTO 2

La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.

 

Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.[2]

CARACTERISTICAS

Archivado en: POO — yerotaro @ 4:19 am
Tags:

·         Abstracción: 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.

www.programacion.com/…/dondo_poo

  • Encapsulamiento: Significa reunir a 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.

http://www.programacion.com/articulos/dondo_poo/rueda.gif

 

  • Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
  • 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++.

http://geeks.ms/photos/aruiz/images/5475/original.aspx

·         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. [3]

http://www.mslatam.com/latam/msdn/comunidad/dce2005/secure/dashboard/dashboard_view.aspx

ELEMENTOS

Archivado en: POO — yerotaro @ 3:53 am
Tags:

http://www.omg.org/images/logos/uml-best.gif

  • 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, (de c a d),Es la facilidad mediante la cual la clase D ha definido en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D.

     

docs.kde.org/kde3/es/kdesdk/umbrello/class.png

  • Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos). Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.

http://www.clikear.com/manuales/uml/graficos/figura6.jpg

  • 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.
  • Evento: un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.
  • Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
  • Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.
  • Estado interno: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
  • Componentes de un objeto:atributos, identidad, relaciones y métodos.
  • Representación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.[4]

INFOGRAFIA

Archivado en: POO — yerotaro @ 3:37 am
Tags:

  [1][3]http://www.mslatam.com/latam/msdn/comunidad/dce2005/secure/dashboard/dashboard_view.aspx

  [2] http://www.desarrolloweb.com/articulos/499.php

  [4] http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos

 

 

 

 

 

 

 

 

 

 

 

 

QUE ES JAVA?

Archivado en: JAVA1 — yerotaro @ 3:19 am
Tags:

Java es un lenguaje de programación con el que podemos realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general. Está desarrollado por la compañía Sun Microsystems con gran dedicación y siempre enfocado a cubrir las necesidades tecnológicas más punteras.

 

La plataforma Java consta de las siguientes partes:

  • El lenguaje de programación, mismo.
  • La máquina virtual de Java o JRE, que permite la portabilidad en ejecución.
  • El API Java, una biblioteca estándar para el lenguaje.[1]

UN POCO DE HISTORIA:

La tecnología Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo.

El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java.

El término Java fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym (”sólo otro acrónimo ambiguo más”). La hipótesis que más fuerza tiene es la que Java debe su nombre a un tipo de café disponible en la cafetería cercana. Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes (el número mágico) de los archivos .class que genera el compilador, son en hexadecimal, 0xCAFEBABE. Otros simplemente dicen que el nombre fue sacado al parecer de una lista aleatoria de palabras.

CREADORES DE JAVA

bp1.blogger.com/…/s320/fotomysql.jpg

El lenguaje Java se creó con cinco objetivos principales:

  1. Debería usar la metodología de la programación orientada a objetos.
  2. Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos.
  3. Debería incluir por defecto soporte para trabajo en red.
  4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
  5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.[2]

PORQUE EL LOGO DE JAVA ES UNA TASA DE CAFE:

 

 blogs.inquirer.net/…/2008/05/java_logo.gif

Se sabe que la idea de ponerle Java a este lenguaje de programación vino de la gran aficción de sus programadores al Café (Java es el nombre de un tipo de café, originario del este de Asia, de la isla del mismo nombre). De hecho como tu ya lo mencionaste el logotipo de Java es una taza de café humeante, y es tambien muy frecuente ver granos de cafe al lado del nombre Java en un libro de programación.[3]

 

CARACTERISTICAS DE JAVA

Archivado en: JAVA1 — yerotaro @ 2:54 am
Tags:

 

Lenguaje simple

Java posee una curva de aprendizaje muy rápida. Resulta relativamente sencillo escribir applets interesantes desde el principio. Todos aquellos familiarizados con C++ encontrarán que Java es más sencillo, ya que se han eliminado ciertas características, como los punteros. Debido a su semejanza con C y C++, y dado que la mayoría de la gente los conoce aunque sea de forma elemental, resulta muy fácil aprender Java. Los programadores experimentados en C++ pueden migrar muy rápidamente a Java y ser productivos en poco tiempo.

Orientado a objetos

Java fue diseñado como un lenguaje orientado a objetos desde el principio. Los objetos agrupan en estructuras encapsuladas tanto sus datos como los métodos (o funciones) que manipulan esos datos. La tendencia del futuro, a la que Java se suma, apunta hacia la programación orientada a objetos, especialmente en entornos cada vez más complejos y basados en red.

Distribuido

Java proporciona una colección de clases para su uso en aplicaciones de red, que permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes remotos, facilitando así la creación de aplicaciones distribuidas.

Interpretado y compilado a la vez

Java es compilado, en la medida en que su código fuente se transforma en una especie de código máquina, los bytecodes, semejantes a las instrucciones de ensamblador.
Por otra parte, es interpretado, ya que los bytecodes se pueden ejecutar directamente sobre cualquier máquina a la cual se hayan portado el intérprete y el sistema de ejecución en tiempo real (run-time).

Robusto

Java fue diseñado para crear software altamente fiable. Para ello proporciona numerosas comprobaciones en compilación y en tiempo de ejecución. Sus características de memoria liberan a los programadores de una familia entera de errores (la aritmética de punteros), ya que se ha prescindido por completo los punteros, y la recolección de basura elimina la necesidad de liberación explícita de memoria.

Seguro

Dada la naturaleza distribuida de Java, donde las applets se bajan desde cualquier punto de la Red, la seguridad se impuso como una necesidad de vital importancia. A nadie le gustaría ejecutar en su ordenador programas con acceso total a su sistema, procedentes de fuentes desconocidas. Así que se implementaron barreras de seguridad en el lenguaje y en el sistema de ejecución en tiempo real.

Indiferente a la arquitectura

Java está diseñado para soportar aplicaciones que serán ejecutadas en los más variados entornos de red, desde Unix a Windows Nt, pasando por Mac y estaciones de trabajo, sobre arquitecturas distintas y con sistemas operativos diversos. Para acomodar requisitos de ejecución tan variopintos, el compilador de Java genera bytecodes: un formato intermedio indiferente a la arquitectura diseñado para transportar el código eficientemente a múltiples plataformas hardware y software. El resto de problemas los soluciona el intérprete de Java.

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).

Alto rendimiento

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.

Produce applets

Java puede ser usado para crear dos tipos de programas: aplicaciones independientes y applets.
Las aplicaciones independientes se comportan como cualquier otro programa escrito en cualquier lenguaje, como por ejemplo el navegador de Web HotJava, escrito íntegramente en Java.
Por su parte, las applets son pequeños programas que aparecen embebidos en las páginas Web, como aparecen los gráficos o el texto, pero con la capacidad de ejecutar acciones muy complejas, como animar imágenes, establecer conexiones de red, presentar menús y cuadros de diálogo para luego emprender acciones, etc.
[4]

 

 

 

PROCESO DE COMPILACION JAVA

Archivado en: JAVA1 — yerotaro @ 2:41 am
Tags:

”Una vez que has copiado el programa Java en Hello.java, necesitas compilar tu programa Java a un código byte. A continuación presentamos algunas definiciones:

  • El código fuente es un programa escrito en Java o en otro lenguaje de alto nivel. A los humanos se les facilita leer los códigos fuente. Los códigos fuente se almacenan en archivos fuente. El programa en Java que viste en la sección previa es un código del applet Hello.
  • La compilación es el proceso de convertir un código fuente de alto nivel a un lenguaje para máquina u otra forma que ésta pueda ejecutar. Mientras que el código fuente de alto nivel pueden comprenderlo fácilmente lo humanos, el lenguaje de máquina de bajo nivel es una forma que es extremadamente difícil para los humanos de seguir, mientras que es muy fácil para que las máquinas lo interpreten.
  • El compilador es un programa de computación que realiza la compilación. En nuestro curso, lo más seguro es que utilizarás un compilador Java llamado javac que es parte del Java Development Kit (JDK). Hay más ayuda para instalar y utilizar el JDK en la sección de ayuda setting up your Java environment (configurando tu medio/ambiente Java).

Desde la ventana de la consola en DOS, puedes habilitar al compilador Java javac para que compiles el archivo de código fuente Hello.java con el comando:

javac Hello.java

El compilar un archivo fuente en Java produce un archivo de código byte. El código byte es un formato especial de nivel intermedio que se puede ejecutar por una Java Virtual Machine: JVM (Máquina Virtual de Java: JVM). Los archivos que contienen los códigos byte tiene una extensión .class. Cuando compiles Hello.java utilizando el compilador de Java javac, éste producirá el código byte en un archivo llamado Hello.class en el mismo directorio. Este archivo lo escribe y nombra el compilador Java y su nombre es siempre el mismo que el nombre de la clase definida en tu programa Java agregando la extensión .class. El resultado de una compilación exitosa de un programa en Java siempre es por lo menos un archivo .class.

El código byte no es código de máquina de bajo nivel. Tu computadora no lo puede ejecutar directamente. El código byte debe ejecutarse por una Máquina Virtual de Java: JVM. Aunque la JVM tiene el término máquina, la palabra máquina se refiere al desarrollo del software, ej., una máquina abstracta. Cuando el código byte se ejecuta dentro de la JVM, éste se traduce a un código real de máquina que puede ejecutarse físicamente por la máquina. Todos los intérpretes Java, navegadores capacitados para Java y los applet viewers tienen una JVM y pueden ejecutar un código byte. La JVM actúa como un intermediario entre la computadora real y tu código byte. Al tener un arquitectura de dos niveles con un código byte como una representación de nivel intermedio y teniendo la JVM actuando como una máquina abstracta, Java adquiere la característica de ser portátil a través de las plataformas computacionales. Por ejemplo, puede ejecutar tu código byte en una computadora Sun o una computadora Macintosh o cualquier otra computadora que tenga una JVM. Actualmente, las JVMs se incluyen en la mayoría de las plataformas computacionales existentes.”[5]

 

[6]http://atenea.ucauca.edu.co/~arendon/corba/CorbaJava/Image11.gif

 

JAVA2

Archivado en: JAVA1 — yerotaro @ 2:07 am
Tags:

CONCEPTO

Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2 Platform, Enterprise Edition o J2EE hasta la versión 1.4), es una plataforma de programación—parte de la Plataforma Java—para desarrollar y ejecutar software de aplicaciones en Lenguaje de programación Java con arquitectura de N niveles distribuida, basándose ampliamente en componentes de software modulares ejecutándose sobre un servidor de aplicaciones. La plataforma Java EE está definida por una especificación. Similar a otras especificaciones del Java Community Process, Java EE es también considerada informalmente como un estándar debido a que los suministradores deben cumplir ciertos requisitos de conformidad para declarar que sus productos son conformes a Java EE; no obstante sin un estándar de ISO o ECMA.[8]

TIPOS

Java 2 Platform, Standard Edition (J2SE):
Nos proporciona un entorno de escritorio Core Java y desarrollo de aplicaciones Java, y es la base de Java 2 Platform, Enterprise Edition (J2EE) y tecnologías Java Web Services . Tiene el compilador, herramientas, módulos de ejecución, y la API de Java que le permiten escribir, probar, implementar y ejecutar applets y aplicaciones.

Java 2 Platform, Enterprise Edition (J2EE):
Define el estándar para el desarrollo basado en componentes aplicaciones multitier enterprise. Se basa en J2SE y ofrece servicios adicionales, herramientas y APIs para apoyar a la simplicicacion del desarrollo de aplicaciones empresariales(Aqui pondemos tener a los Jsp, Beans, Servlets, Jsf, Ejbeans, entre otros.Digamos que esto es para aplicaciones desde el servidor).

Java 2 Platform, Micro Edition (J2ME):
Es un conjunto de tecnologías y especificaciones dirigidas a los consumidores y dispositivos embebidos, como teléfonos móviles, asistentes personales digitales (PDA), impresoras, TV y set-top boxes(que segun supe, esta tecnologia ya no se va a utilizar).”[9]

 

 

ENTORNOS DE DESARROLLO

Archivado en: JAVA1 — yerotaro @ 1:43 am
Tags:

Los IDEs (Integrated Development Environment) son un conjunto de herramientas para el programador, que sulen incluir en una misma suite, un buen editor de código, administrador de proyectos y archivos, enlace transparente a compiladores y debuggers e integración con sistemas controladores de versiones o repositorios.

Cuando de Java se trata, son varias las opciones de IDEs, para utilizar. Gracias a El CoDiGo K mencionamos algunos de los principales y más populares:

·         BlueJ: desarrollado como un proyecto de investigación universitaria, es libre. 

http://www.softonic.com/windows/entornos-de-desarrollo

H    

·         Eclipse: desarrollado por la Fundación Eclipse, es libre y de código abierto 

 

 

 

http://www.softonic.com/windows/entornos-de-desarrollo  

·         Jbuilder: desarrollado por Borland, es comercial pero también existe la versión gratuita.

·         JCreator: desarrollado por Xinox, , es comercial pero también existe la versión gratuita.

http://www.softonic.com/windows/entornos-de-desarrollo  

 

 

·         JDeveloper: desarrollado por Oracle Corporation, es gratuito.

 

http://www.softonic.com/windows/entornos-desarrollo

·         NetBeans – gratuito y de código abierto.

 

http://www.softonic.com/windows/entornos-de-desarrollo 

Sun Java Studio Enterprise: desarrollado por Sun, es comercial.


Además, muchos de estos IDEs, han servido de base para otras plataformas de desarrollo o se pueden utilizar para el desarrollo en otros lenguajes (ya sea en distribuciones específicas o bien a través de la instalación de plugins):

QNX Momentics Development Suite

NetBeans Early Access for PHP

Eclipse C/C++ Development Tooling ”.[9]

 

INFOGRAFIA

Archivado en: JAVA1 — yerotaro @ 12:42 am
Tags:

[1]:http://www.desarrolloweb.com/articulos/497.php

[2]:http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java

[3]:http://www.sun.com/java

[4]http://ar.answers.yahoo.com/question/index?qid=20070824120909AAew11f

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

[6https://www3.carnegietech.org/content/SSD/SSD1/1.7.1Mx/normal/unit2/readMod/how2run/how2run.html

[7] http://www.monografias.com/trabajos/java/java.shtml

[9]http://www.sun.com/java/J2EE

[10] http://luauf.com/2008/05/13/entornos-de-desarrollo-integrado-para-java/

 

Entradas siguientes »

Blog de WordPress.com.