Vous êtes sur la page 1sur 94

LENGUAJE DE PROGRAMACIN

Paradigma OO

Resultado de la evolucin natural de la programacin, devenido en metodologa de programacin de propsito general que simula la forma en que el hombre trabaja y cuya idea bsica es que percibimos al mundo que nos rodea como una variedad de objetos.

Paradigma de la POO
Existen cuatro principios bsicos que cualquier sistema orientado a objetos debe incorporar

Paradigma de programacin Coleccin de conceptos que guan el proceso de construccin de un programa, determinando su estructura. Estos conceptos controlan la forma en que pensamos y formulamos los programas. Un lenguaje de programacin refleja un paradigma.

PARADIGMA
Imperativo Funcional Lgico Orientado a Objetos

LENGUAJE
C, Pascal, Cobol, ... Lisp, Hope, Miranda, ... Prolog, Parlog, ... Smalltalk, C++, Eiffel, Java, ...

Qu significa Orientacin a Objetos?


El software se organiza como una coleccin de objetos que contienen tanto estructura como comportamiento.

Qu es el desarrollo OO?
Una nueva forma de pensar acerca del software basndose en abstracciones que existen en el mundo real. Bombilla
color

encender() apagar()

Conceptos bsicos
Un Objeto es una entidad con una estructura de datos interna bien definida, junto a un conjunto de acciones que describen su comportamiento. Es la unidad bsica de la POO.

Ejemplo: Mara la florista Perla la florista Jos el florista

Conceptos bsicos
Un objeto o instancia es una variable concreta de una clase con su propia copia de variables miembros. Un objeto identidad. tiene estado, comportamiento e

Tiene datos internos que le dan el estado. Tiene mtodos para producir comportamiento. Cada objeto tiene una direccin nica en memoria lo que le da identidad.

Ejemplo: Enviar flores a una persona


de otra ciudad

EJEMPLOS
Propiedades
-Color: amarrillo -Tipo hoja : punteada -Especie: -Tamao:

Mtodos
- Abrir() -Cerrar()

Propiedades
-Color: beige -Tamao : -Marca: -Procesadror:

Mtodos
- Prender() -Calcular() -Apagar()

Conceptos bsicos
Mensaje: Forma de solicitar una accin a un objeto.

Cliente Mensaje Emisor

Servidor Receptor

Objeto, Usuario, Aplicacin

Objeto

Conceptos bsicos
Una clase es: una categora de objetos con caractersticas comunes. una plantilla que se usa para crear mltiples objetos con caractersticas similares.
Las clases engloban las caractersticas de un conjunto particular de objetos.

Cuando se escribe un programa en un lenguaje orientado a objetos no se definen objetos individuales sino clases de objetos. Ejemplo: Florista

Conceptos bsicos
Las clases son tipos de variables o tipos de datos creados por el usuario. Se puede extender un lenguaje de programacin adicionando nuevos tipos de datos especficos acorde a las necesidades del problema a resolver. Las clases pueden estar formadas por variables miembros y funciones miembros.

Conceptos bsicos
Cada clase puede estar compuesta por: Atributos: definen el estado de la clase. atributos pasivos, variables miembros, campos. Mtodos: definen el comportamiento de la clase. funciones miembros, atributos activos, operaciones, comportamiento, responsabilidades.

Ejemplos:
Variables Miembros
Funciones miembros Variables Miembros Funciones miembros

Notacin UML para representar una clase

Florista
Nombre Salario Edad Vender flores Enviar flores a otra ciudad Bombillo Consumo Enceder Apagar Aumentar Brillo Disminuir brillo

Atributos o variables miembros


Los atributos son caractersticas, propiedades que hacen que un objeto se diferencie del otro. Pueden determinar apariencia, cualidades, estado, etc. Los atributos se definen por variables. Para cada variable se define su tipo. Tanto en Java como en C++ es posible definir: Variables o atributos de clase Variables o atributos de objeto o de instancia

Mtodos o funciones miembros


El comportamiento de una clase se implementa a travs de sus mtodos o funciones miembros.

Una clase o un objeto puede llamar mtodos de otras clases para: Indicar a otro objeto que cambie Pedir a otro objeto que haga algo
Es posible definir: Mtodos de instancia: aplican a cada objeto de la clase. Mtodos de clase (en Java).

Mtodos de clase
Estn disponibles para cualquier instancia de la clase y para otras clases. No se requiere una instancia de la clase para poder invocar a un mtodo de clase. Para definir los mtodos de clase hay que anteponer a la definicin del mtodo la clusula static.

Conceptos de OO

Abstraccin Encapsulamiento Modularidades Objetos Clases Vinculos y Asociasiones Composicion Herencia

Mensajes y Mtodos Herencia Clases y Operaciones Abstractas Modularidades Polimorfismo

Abstraccin
Ignorar aspectos irrelevantes y concentrarnos en los principal Tipos:

Abstraccin de datos. Abstraccin de procedimientos.

Encapsulamiento

Separar los aspectos externos de los aspectos internos:


Aspectos externos: Interfaz, contrato Aspectos internos: Implementacin

Modularidad

Descomponer el sistema en mdulos Fundamental para el reuso.

Vnculos y Asociaciones

Objetos relacionados entre si:


Vnculos: Conexin entre objetos. Asociacin: Conexin entre clases que representa existencia de vnculos. Asociaciones pueden ser cardinalidades

Composiciones
Los objetos complejos son compuestos por objetos mas simples. Composicin: Las partes pueden ser relacionadas a todo. Agregacin: Las partes pueden ser descompuestas.

Herencia
Cuando las clases tienen semejanzas podemos generalizarlas. Jerarquias

Relaciones entre super clases y sub clases

Mensajes y Mtodos
Los Objetos envan mensajes para comunicarse, debe ser la nica forma. Mtodos: Operaciones que un objeto puede realizar.

Persistencia

Capacidad del objeto de trascender en tiempo y espacio:


Almacenamiento en banco de datos. Transmisin por la red.

Clases y Metodos Abstractos


Las clases abstractas no pueden ser instancias. Metodos abstractos no pueden ser implementados. Clases compuestas solamente por metodos abstractas.

Sobrecarga y Sobrescrita
Sobrecarga: Operaciones distintas con el mismo nombre. Sobrescrita: Sub Clase define nueva implementacin para operaciones definidas en una super clase.

Polimorfimo

Habilidad de tomar varias formas.

PROPIEDADES DEL LENGUAJE JAVA


Portable , debido a que es posible ejecutar el mismo archivo de clase (.class), sobre una amplia variedad de arquitecturas de hardware y de software, sin ninguna modificacin. Dinmico, debido a que las clases son cargadas en el momento en que son necesitadas (dinmicamente), ya sea del sistema de archivos local o desde algn sitio de la red mediante algn protocolo URL. Java tiene la capacidad de aumentar su sistema de tipos de datos dinmicamente o en tiempo de ejecucin. Este "enlace tardo" (latebinding) significa que los programas slo crecen al tamao estrictamente necesario, aumentando as la eficiencia del uso de los recursos. Java hace menos suposiciones sobre las implantaciones de las estructuras de datos, que los lenguajes estticos de "enlace temprano" o en tiempo de compilacin (early-binding) como C o C++. Seguridad y la fiabilidad, por lo que se le integraron varias capas de seguridad para evitarque programas maliciosos pudiesen causar daos en los sistemas, sobre los que ejecuta la implantacin de la Mquina Virtual Java.

ARQUITECTURA

LA MAQUINA VIRTUAL JAVA (MVJ)


La Mquina Virtual Java es el ncleo del lenguaje de programacin Java. De hecho, es imposible ejecutar un programa Java sin ejecutar alguna implantacin de la MVJ. En la MVJ se encuentra el motor que en realidad ejecuta el programa Java y es la clave de muchas de las caractersticas principales de Java, como la portabilidad, la eficiencia y la seguridad. Siempre que se corre un programa Java, las instrucciones que lo componen no son ejecutadas directamente por el hardware sobre el que subyace, sino que son pasadas a un elemento de software intermedio, que es el encargado de que las instrucciones sean ejecutadas por el hardware. Es decir, el cdigo Java no se ejecuta directamente sobre un procesador fsico, sino sobre un procesador virtual Java, precisamente el software intermedio. La representacin de los cdigos de instruccin Java (bytecode) es simblica, en el sentido de que los desplazamientos e ndices dentro de los mtodos no son constantes, sino que son cadenas de caracteres o nombres simblicos. Estos nombres son resueltos la primera vez que se ejecuta el mtodo, es decir, el nombre simblico se busca dentro del archivo de clase (.class) y se determina el valor numrico del desplazamiento. Este valor es guardado para aumentar la velocidad de futuros accesos. Gracias a esto, es posible introducir un nuevo mtodo o sobreescribir uno existente en tiempo de ejecucin, sin afectar o romper la estructura del cdigo.

MAQUINA VIRTUAL JAVA

FIGURA 1 La Mquina Virtual Implementada para una variedad de plataformas

En ella podemos ver que lo verdaderamente dependiente del sistema es la Mquina Virtual Java (JVM) y las libreras fundamentales, que tambin nos permitiran acceder directamente al hardware de la mquina. Adems, habr APIs de Java que tambin entren en contacto directo con el hardware y sern dependientes de la mquina, como ejemplo de este tipo de APIs podemos citar: Java Java Java Java Java Java 2D: grficos 2D y manipulacin de imgenes Media Framework : Elementos crticos en el tiempo: audio, video... Animation: Animacin de objetos en 2D Telephony: Integracin con telefona Share: Interaccin entre aplicaciones multiusuario 3D: Grficos 3D y su manipulacin

LA TRADUCCION Y MOMENTO DE ENCADENAMIENTO


Por ser strongly typed(depender de JMV), casi todo el chequeo y enlaces de tipos se hacen en tiempo de compilacin.

La compilacin se refiere a la conversin del programa hecho por el programador a byte-codes.


Sin embargo por ser un lenguaje interpretado, los enlaces se calculan en tiempo de ejecucin. En alguno sistemas, una parte del cdigo se compila realmente en cdigo maquina, pero despus que la JVM hizo chequeos de integridad.

Class Loader Byte-Codes Verifier

La JVM: Carga el cdigo

Interpreter Runtime

JIT Compiler

Lo verifica y
Lo ejecuta

HARWDARE

ARQUITECTURA NEUTRAL
Para establecer Java como parte integral de la red, el compilador Java compila su cdigo a un archivo objeto de formato independiente de la arquitectura de la mquina en que se ejecutar. Cualquier mquina que tenga el sistema de ejecucin (run-time) puede ejecutar ese cdigo objeto, sin importar en modo alguno la mquina en que ha sido generado. Actualmente existen sistemas run-time para Solaris 2.x, SunOs 4.1.x, Windows XX-NT, Linux, Irix, Aix, Mac, Apple y probablemente haya grupos de desarrollo trabajando en el porting a otras plataformas.

El cdigo fuente Java se "compila" a un cdigo de bytes de alto nivel independiente de la mquina. Este cdigo (byte-codes) est diseado para ejecutarse en una mquina hipottica que es implementada por un sistema run-time, que s es dependiente de la mquina. En una representacin en que tuvisemos que indicar todos los elementos que forman parte de la arquitectura de Java sobre una plataforma genrica, obtendramos una figura como la siguiente:

INDEPENDENCIA DE LA ARQUITECTURA (CREACIN DE LA JVM)

Cdigo fuente Compilador Java Byte-codes Macintosh JVM Cdigo mquina Macintosh

Win32 JVM Cdigo mquina Win32

UNIX JVM Cdigo mquina UNIX

Java es mucho!
Un lenguaje de programacin Java Un ambiente de ejecucin. Un Kit de desarrollo Java. Una biblioteca de clases (API) Java.

Java Development Kit


Solamente para programadores Contiene:

Herramientas de desarrollo. Ambiente de Ejecucin API JAVA SE (Compilada y Cdigo Fuente) Programas de Ejemplo. Bibliotecas adicionales Documentacin (obtenida separadamente)

Herramientas Disponibles

Compilador (javac) Interprete (java) Generador de documentacin (javadoc) Depurador (jdb) Generador de Paquetes (jar) Otros:

Visualizados de Applets (appletviewer) Criptografa(keytool, jarsigner, etc.) Etc.

Escribe una vez, ejecuta donde quieras:

Los cdigos de Java son compilados para un lenguaje intermedio llamado: ByteCode ByteCodeesinterpretadoporunamaquina virtualaJVM. A JVM envia comandos especficos a la plataforma para el sistema operativo

Principales APIs

AWT/Swing/SWT: interfaces grficas; Java2D: Diseo; JDBC: acesso a Base de Datos; JNDI: acesso a servidores de dominios; RMI: Invocacin remota de mtodos; Beans: padre de JavaBeans; i18n: suporte a internacionalizacion; I/O: entrada y salida (archivos); JNI: Intergracion con lenguajes nativos Math: clculos matemticos;

Principales APIs

Networking: Transmisin por redes; Security: Seguridad; Serialization:; XML: Procesamiento de XML; Lang & Util: ncleo da lenguaje, utilitarios (colecciones, datas, etc.); Concurrencua: Programacion Concurrente(threads); Logging: (log); Reflection

Java Platform, Enterprise Edition

Permite el desarrollo de aplicaciones corporativas:


Multi-llamada, distribudas, centradas en servidores, altamente robustas, estables y escalables Incluye especificaciones para desarrollo Web: Servlets, JSP, Web Services.

Servlets, JSP e EJBs

Servlets e JSPs:

Componentes que responden a peticiones Web usados para construir pginas dinmicas de Web Services
Componentes heredados integrados a otras tecnologas Java EE para proveer acceso remoto, persistencia y transacciones transparentes, procesamiento asncrono, etc.

EJBs:

Java Platform, Mobile Edition

Permite desarrollo de aplicaciones para dispositivos mobiles.


Telefonos Celulares. PDAs Dispositivos Embedded. Etc.

Java Card: Aplicaciones para Smart Cards y una cantidad ilimitada de dispositivos

JAVA EN TODO LUGAR

Java esta en todo lugar

Enterprise (Empresa)

COMO COMENZAR?

Preparando el ambiente

Descargar JDK En cualquiera de las direcciones electrnicas

Escoja la versin de su sistema operativo.

Instalando

Windows:
Instalar primero Microsft, simplicado. Documentacin compactada.

Linux:
Instalar de los repositorios Documentacin compactada.

Escribiendo Programas

Puedes usar:
Eclipse NetBeans JetBrains IntelliJ IDEA Borland Jbuilder Etc. Editores mas simples:

JEdit JCreator

El lenguaje de programacin JAVA

Qu es exactamente JAVA?
Es un lenguaje de programacin orientado a Objetos
herencia polimorfismo (late binding) encapsulamiento (abstraccin datos)

Sintaxis general y estructuras de control parecidas al C. Todo son clases: no hay estructuras de datos separadas ni variables globales.

Qu es exactamente JAVA?
Corre en Varias plataformas, ya que el explorador del computador, interpreta el cdigo generado por el compilador(Byteco de) y lo convierte a lenguaje de mquina, donde se necesita ejecutar el programa.
Programa fuente F.java Compilacin (Javac) Clase1.class ByteCode Clase2.class ClaseN.class

JVM para la mquina 1

JVM para la mquina 2

JVM para la mquina 3

Cdigo mquina 1

Cdigo mquina 2

Cdigo mquina 3

Qu es exactamente JAVA?
Crea Applets, los cuales son programas interactivos para ejecutarse en la Red Internet con un Explorador Es seguro y confiable, ya que posee Excepciones, para la captura de errores A travs de la herencia se puede reusar cdigo, permitiendo un ahorro de tiempo de programacin.

Aplicaciones Java
Lenguaje de programacin que permite crear cinco tipos distintos de aplicaciones:
Aplicaciones Autnomos Applets. Manipuladores de Protocolo Manipuladores de Contenido Mtodos Nativos

Aplicaciones Autnomas
Es aquel programa que se puede ejecutar bajo un sistema operativo. En el caso del JDK, se utiliza el Dos para Compilacin, Generacin de ByteCode y despus ejecutarlo. 1. Compilacin y Generacin de ByteCode: javac <Nombre de Archivo.java> 2. Ejecucin: java <nombre de Archivo.class>

Modelo Ejecucin Programas Autnomos


Editor

Programa fuente Programa.java Compilacin (Javac) ByteCode Programa.class

JAVA es un lenguaje que se compila a un cdigo intermedio:


bytecode

Interpretacin por la JVM (Java) Cdigo mquina

Para ejecutar un programa, una mquina virtual interpreta ese cdigo.

APPLETS
Es aquel programa puede ejecutarse a travs de un Explorador. 1. Debe compilarse el programa fuente(extensin java), para as, generarse el programa ByteCode(extensin class) 2. Crearse un Archivo HTML <applet code=programa.class height=1000 width=1000> </applet> 3. Utilizando un explorador, ejecutarse el archivo HTML

Modelo Ejecucin APPLETS


JAVA es un lenguaje que se compila a un cdigo intermedio:
bytecode

Para ejecutar un programa, se necesita de un Explorador

Manipuladores de Protocolo
Programas que se cargan en el Navegador del Usuario e Interpreta un Protocolo. Estos protocolos, pueden ser los estandares, los HTTp FTP por ejemplo, como protocolos definidos por el usuario.

Manipulador de Contenido
Programas cargados en el navegador del usuario, que interpreta archivos de un tipo definido por el programador Java. El programador Java suministra el cdigo necesario para el navegador del usuario visualice/interprete un formato especial.

Mtodos Nativos
Mtodos que aparecen declarados en una clase Java, pero que estn implementados en lenguaje Java. En esencia, tales mtodos nativos permiten que el programador en Java pueda acceder a un cdigo C desde Java.

CLASES EN JAVA
En Java todas las clases son subordinadas de una superclase llamada Object
OBJECT CLASE A CLASE B

CLASE C

Declaracin de Clases
La sintaxis en Java es la siguiente: class Identificador { cuerpo-clase; } donde el identificador es el nombre de clase(Primera Letra en mayscula)

Ejemplo de Clase
class Triangulo { float area, altura; int a, b, c; void Triangulo (int la, int lb, int lc) { a = la; b = lb; c = lc; } }

Modificadores de clase
public. Indica que las variables y mtodos de una clase son accesibles, tanto dentro como fuera de la clase. abstract. Clase en donde se define los prototipos de los mtodos.Un ejemplo, de una clase abstracta son las Interfaces final. Indica que esta clase no podr tener herencia.

Modificadores de Acceso Variables/Mtodos


predeterminado. Los objetos de una clase pueden tener acceso a las variables/mtodos public. Indica que las variables y mtodos de una clase son accesibles, tanto dentro como fuera de la clase. protected. Indica que los miembros de una clase slo son accesibles a mtodos de la clase y sus subclases.

Modificadores de Acceso Variables/Mtodos


static. Indica que una variable o un mtodo es el mismo para todos los objetos de una clase determinada.
final. En el caso de una variable indica que posee un valor constante. En el caso de un mtodo indica que un mtodo de una subclase no puede sustituirse.

Modificadores de Acceso Mtodos


native. Informa al compilador de Java que una implementacin de un mtodo es un archivo C externo. abstract. Mtodos declarados pero sin cuerpo(no implementados) syncrhonized. En el caso del Multisubprocesos, slo deja que acceda a un mtodo un nico subproceso, obligando a que los dems esperen su turno.

Constructor
Es un mtodo especial, implementable en todas las clases, que permite iniciar variables y ejecutar cualquier otra operacin, cuando se crea una instancia de esa clase (objeto). Tienen el mismo nombre que la clase.

Destructor
Es un mtodo que puede ejecutar operaciones que el programador necesita una vez se quiere destruir un objeto. En Java, el destructor se denomina finalize, debiendo declararse as: protected void finalize(){ }

Creacin de Objetos
Para crear un objeto o instancia de una clase, declare una variable objeto y use el operador new. Clase nombre=new Clase(parmetros) donde: nombre: Nombre de objeto parmetros: parmetros exigidos por el constructor

Creacin de Objetos
Ejemplo: 1. Suma A=new Suma(); La Clase es Suma, el objeto es A y el constructor a utilizarse es sin parmetros. 2. Suma A=new Suma(3); La Clase es Suma, el objeto es A y el constructor utiliza como parmetro un entero.

Creacin de Objetos
En Java, los vectores de nmeros como las cadenas de caracteres son Objetos, por tanto, se deben declarar as: tipo nombre[]=new tipo[dimension]; ejemplo: char c[]=new char[4]; int a[]=new int[4]; float b[]=new float[4];

BIBLIOTECA DE CLASES
La reutilizacin del cdigo es una de las ventajas de la POO, ahorrando as, cantidades de tiempo y esfuerzo. El Java reutiliza el cdigo en su implementacin de una gran variedad de objetos Los objetos Java se conocen de forma colectiva como las bibliotecas de clases de Java.

BIBLIOTECA DE CLASES
Las Bibliotecas de clases de Java se implementan como Paquetes, que contienen grupos de clases relacionadas. Junto con las clases, los paquetes Java tambin incluyen definiciones de interfaces, excepciones y de errores.

BIBLIOTECA DE CLASES
Java se compone de cinco bibliotecas de clases o paquetes: El Paquete del Lenguaje El Paquete de Utilidades El Paquete de E/S El Paquete del Sistema de Ventanas El paquete de trabajo en Red

PAQUETE DEL LENGUAJE


Tambin se conoce con el nombre de java.lang, proporciona las clases que componen el ncleo del lenguaje Java, conteniendo as, las clases al nivel ms bajo. Se encuentra en este paquete, la clase Object, de la cual se derivan todas las clases.

PAQUETE DEL LENGUAJE


Se enumeran algunas clases que contiene este paquete: Object Character Number Math Clases de Cadenas

PAQUETE DE UTILIDADES
Conocido tambin como java.util, proporciona varias clases que trabajan con fechas, conjunto de clases de estructura de datos, para generar nmeros aleatorios, descomposicin de cadenas en tokens

PAQUETE DE E/S
Conocido tambin como java.io, proporciona las clases con soporte para la lectura y escritura de datos desde y hacia diferentes dispositivos de entrada y salida, incluyendo archivos. El paquete de E/S incluye clases para la entrada, salida de flujos de datos, trabajo de archivos,etc

PAQUETE DE TRABAJO EN RED


Una de las mejores caractersticas de java es su soporte de red. Java tiene clases que van desde conexiones TCP/IP de bajo nivel a otras que proporcionan acceso instantneo a recursos en la WWW

Vous aimerez peut-être aussi