You are on page 1of 15

Introducción a POO

Fundamentos de Java

Programación Orientada a Objetos


Introducción a POO

• Diferencia entre programación orientada a objetos y lenguaje


orientado a objetos
– Programación orientada a objetos
• Es una “filosofía” (forma de pensar)
• Modelo de programación, con su teoría y su metodología
– Lenguaje orientado a objetos
• Lenguaje de programación que permite el diseño de aplicaciones
orientadas a objetos

• Primero se debe adquirir la forma de pensar es decir la


“filosofía” orientada a objetos y aprender después el lenguaje
Introducción a POO

• La programación orientada a objetos


– No se trata de nuevas características de un lenguaje de programación
– Es una nueva forma de pensar acerca del proceso de descomposición
de problemas y de desarrollo de soluciones.
Introducción a POO

• Hasta el momento la forma de enfrentarse a la complejidad


que presenta el software ha sido empleando lo que llamamos
programación estructurada
– Descomposición del problema en sub-problemas hasta llegar a
acciones muy simples y fáciles de codificar.
– Básicamente descomponer el problema en acciones
• Por ejemplo un programa que resuelva ecuaciones de segundo grado:
– Pedir el valor de los coeficientes a, b y c;
– Calcular el valor del discriminante
– En función del signo del discriminante, calcular ninguna, una o dos raíces.
Introducción a POO

• La programación orientada a objetos es otra forma de


descomponer problemas.
– Descomposición en objetos
• Los lenguajes de programación tradicionales no orientados a
objetos
– C, Pascal, BASIC, o VB
– Funcionamiento en el concepto de procedimiento o función.
• Una función es simplemente un conjunto de instrucciones que operan
sobre unos argumentos y producen un resultado.
Introducción a POO

• El elemento básico de los lenguajes orientados no es la


función, sino un ente denominado objeto.
– C++, Java, C#, VB .NET
• Un objeto es la representación en un programa de un
concepto
– Contiene toda la información necesaria para abstraerlo:
• Datos que describen sus atributos
• Operaciones que pueden realizarse sobre los mismos.
Introducción a POO
• Una nueva forma de pensar y enfocar los problemas implica una dificultad
de aprendizaje de un lenguaje totalmente orientado a objetos

• El lenguaje a usar en este curso es Java


– Java es un lenguaje de objetos
– Java incorpora el uso de la orientación a objetos como uno de sus pilares
básicos y fundamentales
– Es un lenguaje interpretado
– Es un lenguaje de propósito general

• Diferencias con respecto a C++.


– C++ es orientado a objetos pero permite escribir código no orientado a
objetos.
– En Java todo programa por más sencillo o pequeño que sea es forzado a
implementar objetos.
– En Java nada se puede hacer sin usar al menos un objeto.
Fundamentos de Java
Plataforma
Fundamentos de Java
Características
• Multiplataforma
– Los programas se compilan en un bytecode independiente de la
máquina y existen entornos de ejecución de apliacaciones JAVA para
casi todos los SO.
• Seguro
– Forza restricciones sobre las operaciones permitidas
• Applets no tienen acceso directamente al hardware de la PC
– Antes de ejecutar se verifican los bytecodes de la aplicación
Fundamentos de Java
Características
• Cuenta con bibliotecas estándar
– Manejo de colecciones
– Acceso a datos
• JDBC
– Interfaces gráficas
• AWT/JFC/Swing
– Redes de ordenadores
• RMI, Jini
– Aplicaciones distribuidas
• EJB
– Interfaces web
• Servlets/JSP
– Manejo de hilos
– Compresión de datos
– Criptografía
Fundamentos de Java
Características
• Gestión automática de memoria
• Comprobación estricta de tipos
• Sintaxis simplificada con respecto a C++
– No se manejan punteros explícitamente, aunque todo es puntero en la
orientación a objetos.
– No hay que mantener archivos de encabezados aparte
– No existen macros (#define) por ser propensas a errores
– No hay que crear makefiles (archivos de dependencias)
Fundamentos de Java
La máquina virtual (JVM)

• En el proceso de compilación, el compilador JAVA (javac.exe) genera un


código independiente de la plataforma, código bytecode
– Bytecode es una especie de lenguaje de máquina de una máquina virtual
Fundamentos de Java
La máquina virtual (JVM)

• En el proceso de ejecución, la Java Virtual Machine (java.exe) realiza una


compilación Just In Time
– Compila el Bytecode para generar el código de máquina según la arquitectura
y sistema operativo sobre el cual se encuentra.
Fundamentos de Java
Creación y ejecución de aplicaciones
Fundamentos de Java
Creación y ejecución de applets

You might also like