POO
POO
POO
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 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.
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.
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.
Servidor Receptor
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
Florista
Nombre Salario Edad Vender flores Enviar flores a otra ciudad Bombillo Consumo Enceder Apagar Aumentar Brillo Disminuir brillo
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
Ignorar aspectos irrelevantes y concentrarnos en los principal Tipos:
Encapsulamiento
Modularidad
Vnculos y Asociaciones
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
Mensajes y Mtodos
Los Objetos envan mensajes para comunicarse, debe ser la nica forma. Mtodos: Operaciones que un objeto puede realizar.
Persistencia
Sobrecarga y Sobrescrita
Sobrecarga: Operaciones distintas con el mismo nombre. Sobrescrita: Sub Clase define nueva implementacin para operaciones definidas en una super clase.
Polimorfimo
ARQUITECTURA
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
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:
Cdigo fuente Compilador Java Byte-codes Macintosh JVM Cdigo mquina Macintosh
Java es mucho!
Un lenguaje de programacin Java Un ambiente de ejecucin. Un Kit de desarrollo Java. Una biblioteca de clases (API) Java.
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:
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
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 Card: Aplicaciones para Smart Cards y una cantidad ilimitada de dispositivos
Enterprise (Empresa)
COMO COMENZAR?
Preparando el ambiente
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
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
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>
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
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.
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 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