0% encontró este documento útil (0 votos)
143 vistas47 páginas

TEMA 02 Introducción A Java y POO UNMSM

Este documento introduce conceptos clave de programación orientada a objetos y Java. Explica que la POO modela el mundo real mediante objetos con propiedades y comportamientos, y que una clase define el tipo de un objeto. También resume las características principales de Java como lenguaje multiplataforma, orientado a objetos e independiente del hardware.

Cargado por

ryusaki
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
143 vistas47 páginas

TEMA 02 Introducción A Java y POO UNMSM

Este documento introduce conceptos clave de programación orientada a objetos y Java. Explica que la POO modela el mundo real mediante objetos con propiedades y comportamientos, y que una clase define el tipo de un objeto. También resume las características principales de Java como lenguaje multiplataforma, orientado a objetos e independiente del hardware.

Cargado por

ryusaki
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 47

Programación Orientado a Objetos

Introducción a Java y
Programación Orientado a Objetos

Edgard Oporto
2020 - I
Contenido

1 – Fases de un proyecto informático


2 – Tipos de lenguajes
3 – Historia de Java
4 – Características de Java
5 – Compilador e interprete Java
6 – Lenguajes compilados vs interpretados
7 – Versiones y plataforma Java

8 – Conceptos de programación orientada a objetos


Objetos
Clase
Mensajes
Paquetes
Abstracción
Encapsulamiento
Herencia
Interfaces
Polimorfismo
Sobrecarga

Tarea
1 - Fases de un proyecto informático

- Análisis del problema a resolver


Identificación de entradas y salidas
Identificación de funcionalidades requeridas

- Diseño
Modelamiento de la solución

- Codificación + compilación

- Depuración + pruebas

- Documentación
2 - Tipos de lenguajes

- Lenguaje de máquina
Consta de instrucciones del procesador, en binario o hexadecimal.
Es el programa tal cual se carga en memoria y tal cual lo ejecutará
el procesador.
Se puede “ver” con un editor binario, byte a byte.

- Lenguaje ensamblador
Consta de instrucciones (en nemónicos) fáciles de recordar.
Es prácticamente igual que el lenguaje de máquina pero con
diversas facilidades que los hacen más viable programar.
Consta de instrucciones al procesador o propias de ellas.

- Lenguajes de alto nivel


Consta de instrucciones de alto nivel para diversas finalidades.
Oculta las complejidades del hardware.
Orientado al usuario.
3 - Historia de Java
- Desarrollado por James Gosling en Sun Microsystems.
- Gosling trabajó en Sun desde 1984 hasta 2010.
- Sun Microsystems fue creada en 1982 y adquirida en 2010 por
Oracle.
- Gosling es considerado el padre y creador del lenguaje Java.

- Sun Microsystems fue una empresa informática fabricante de


semiconductores, estaciones de trabajo, servidores y software
(UNIX, Solaris, Java, Open Office).

Canadá, 1955
3 - Historia de Java
- Java fue desarrollado en 1991 como parte de un proyecto de
set-top-box de Sun Microsystems.

- Originalmente al lenguaje se le denominó OAK, luego GREEN y,


finalmente, JAVA.

- Luego de distintas versiones previas, finalmente en 1995 se


presenta la versión alfa de Java.

- Java surge por la necesidad de construir software para la


electrónica de consumo:

TV
Teléfonos
Decodificadores
Microcontroladores
Tarjetas SIM

Supera la dificultad de C y C++ de contar con código


transportable.

Duke, la mascota de Java


4 – Características de Java
- Java es Write Once, Run Anywhere
- Lenguaje independiente de la plataforma de ejecución
- Multiplataforma de desarrollo
Windows
MAC OS X
LINUX
SOLARIS

- Es uno de los lenguajes más importantes del mundo


- Con el surgimiento de Android, se ha establecido
como el lenguaje para móviles más extendido.
- Genera código portable, 100%

- Programación para redes


- Distribuido
- Seguro y robusto
Gestores de seguridad limitan acceso a recursos
4 – Características de Java
- Orientado a objetos
- Multiproceso/multihilo nativo (multithreading)
- Compatible con Internet, corre en navegadores de cualquier
computador

- Es de propósito general
- Programación móvil, J2ME – Java 2 Micro Edition
- Programación de aplicaciones web

- Dispone de una inmensa biblioteca


Manejo de gráficos
Acceso a Internet
Interface gráficas para usuarios (GUIs)
Acceso a base de datos

- Permite:
➢ Mantención
➢ Extensión
➢ Reutilización
4 – Características de Java
a) El 97% de los escritorios empresariales ejecutan Java.
b) El 89% de los escritorios (o computadoras) en Estados Unidos ejecutan
Java.

c) 9 millones de desarrolladores de Java en todo el mundo.


d) La primera opción para los desarrolladores.

e) La primera plataforma de desarrollo.


f) 3 mil millones de teléfonos móviles ejecutan Java.

g) El 100% de los reproductores de Blu-ray incluyen Java.


h) 5 mil millones de Java Cards en uso.

i) 125 millones de dispositivos de televisión ejecutan Java


j) 5 de los 5 principales fabricantes de equipos originales utilizan Java
ME.

https://www.java.com/es/about/
4 – Características de Java
Java permite:

a) Escribir software en una plataforma y ejecutarla en otra.

b) Crear programas que se puedan ejecutar en un explorador y


acceder a servicios Web disponibles

c) Desarrollar aplicaciones de servidor para foros en línea,


almacenes, encuestas, procesamiento de formularios HTML y
mucho más.

d) Escribir aplicaciones potentes y eficaces para teléfonos


móviles, procesadores remotos, microcontroladores, módulos
inalámbricos, sensores, gateways, productos de consumo y
prácticamente cualquier otro dispositivo electrónico.

Dispositivos portátiles

https://www.java.com/es/about/
5 – Compilador e interprete Java

Compilador Interprete/JVM

Código fuente => ByteCode => Código máquina


5 – Compilador e interprete Java
Portable,
independiente del
hardware destino

Dependiente del
hardware destino

a) En Java, el código fuente se escribe en un archivo de texto plano,


con extensión .java.

b) El código es compilado a bytecodes, archivos con extensión .class.

c) Los bytecodes son interpretados (transformados a código nativo)


por la máquina virtual en la plataforma destino.
5 – Compilador e interprete Java
5 – Compilador e interprete Java
6 – Lenguajes compilados vs interpretados

Lenguaje compilado
6 – Lenguajes compilados vs interpretados

Lenguaje compilado
6 – Lenguajes compilados vs interpretados
Lenguajes compilados versus lenguajes interpretados
7 – Versiones y plataforma de Java

Java Standard Edition, para aplicaciones de escritorio y web

Java Enterprise Edition, para aplicaciones empresariales, cliente/servidor


Java Micro Edition, para dispositivo móviles, IoT, uCs

Java para aplicaciones de tarjetas de crédito, con chip


Java ME para TVs
Java Derby, gestor de base de datos

Java FX
Permite la creación de Rich Internet Applications, aplicaciones
web con características y capacidades de aplicaciones de
escritorio, incluyendo aplicaciones multimedia interactivas
7 – Versiones y plataforma de Java

Java no incluye entorno de edición

- 1996 JDK 1.0 Java 1


- 1997 JDK 1.1
- 1998 J2SE 1.2
- 2000 J2SE 1.3 Java 2
- 2002 J2SE 1.4
- 2004 J2SE 5.0 (corresponde a 1.5)
- 2006 Java SE 6
- 2011 Java SE 7
- 2014 Java SE 8
- 2017 Java SE 9
- 2018 Java SE 10
- 2018 Java SE 11
- 2019 Java SE 12
- 2020 Java SE 14 Enlaces de descarga
https://www.oracle.com/java/technologies/
https://www.oracle.com/java/technologies/javase-downloads.html
7 – Versiones y plataforma de Java
Java SE puede ser descargado en tres modalidades:

JDK Java Development Kit


JRE Java Runtime Enviroment
JVM Java Virtual Machine

Java 2 SDK
Incluye JRE + herramientas para el desarrolllo de aplicaciones
Java 2 JRE
Incluye JVM + clases para la ejecución de aplicaciones
7 – Versiones y plataforma de Java

javac Compilador Java


java Intérprete Java, ejecuta programas compilados
AppletViewer Visualizador de applets tal como se vería en un navegador
JDb Depurador
Javadoc Generador de documentación

Tipo de archivos
.jar
Archivo ZIP
Contiene clases, fuentes, etc.

.java
código fuente

.class
Archivo de código intermedio
(bytecode)
8 – Conceptos de programación orientada a objetos
- Paradigma de programación que emplea entidades virtuales
que modelan los objetos del mundo real y sus interacciones.

La POO trata de aproximarse al modo


de actuar del hombre y no al de la
máquina.

La POO se basa en la idea


natural de un mundo lleno de
objetos.

La resolución de problemas se
realiza mediante el modelo de
objetos.
8 – Conceptos de programación orientada a objetos
Objetos
Son entidades físicas o virtuales.
Se caracterizan por tener propiedades y responder ante eventos.
Los objetos interaccionan entre sí, mediante mensajes.

El mundo real consta de objetos de muchas clases (tipos) distintas.


8 – Conceptos de programación orientada a objetos
CLASE
Es un modelo que representa a cierto tipo de objetos en cuanto a
sus propiedades, comportamiento y eventos a los que responde.
8 – Conceptos de programación orientada a objetos
CLASE

No existe físicamente Existe físicamente


Es solo un modelo No es un modelo, es real

Pueden haber muchos


objetos de clase perro
8 – Conceptos de programación orientada a objetos
CLASE
Una clase es como un tipo de dato creado por el usuario, que posee dos
categorías de miembros:
➢ Atributos (Datos)  Estado
Son las propiedades que caracterizan a los objetos de una clase.

➢ Métodos (Algoritmos)  Comportamiento


Representan todas aquellas acciones que realiza o se pueden
realizar sobre los objetos de una clase.

* Los atributos son variables que representan propiedades de los objetos.


* Los métodos son segmentos de código (funciones o rutinas).

Atributos Representan las


propiedades de los objetos

Métodos Representan el
comportamiento de los
objetos
8 – Conceptos de programación orientada a objetos
CLASE - Ejemplos de clases y objetos

OBJETO CLASE
Pedro Ser humano
María Ser humano
Auto placa 12345 Toyota Corolla
Auto placa 13458 Toyota Corolla
Cuenta corriente de Pedro Cuenta corriente

Clase cuenta corriente


Atributos
➢ Número
➢ Nombre
➢ Saldo

Métodos
➢ Depositar
➢ Girar
➢ Conocer saldo
8 – Conceptos de programación orientada a objetos
CLASE - Creación de OBJETOS
Se crean en el programa mediante un proceso llamado
instanciación de clases.

Un objeto es un ente particular de cierta clase creado en


base a la definición contenida en su clase (propiedades y
comportamiento) .

Un objeto es una instancia de una clase.


Las clases se instancian para crear un nuevo objeto.

Los objetos se describen de forma general mediante clases


(propiedades y comportamiento).

EJEMPLO
Suponer los siguientes objetos:
➢ El auto patente WF-4631 es una instancia de la clase Vehículo, o
sea, un objeto de esa clase

➢ La camioneta patente ZT-9283 es otra instancia de la clase


Vehículo

Se puede crear una clase Vehículo


8 – Conceptos de programación orientada a objetos
CLASE - Miembros de una clase
Las clases y objetos encapsulan los atributos.
El acceso a los atributos solo es permitido a través
de sus métodos.

Atributos: son contenedores de valores


Métodos: son contenedoras de funciones

Un objeto tiene:
- Estado: dado por sus atributos
- Comportamiento: dado por sus métodos
8 – Conceptos de programación orientada a objetos

MENSAJES

a) Mecanismo por el cual se solicita a un objeto que realice una


acción (ejecute uno de sus métodos).

b) Un programa en ejecución es un conjunto de objetos que se


crean, interactúan y se destruyen.

 La interacción se basa en mensajes que son enviados de un


objeto a otro, de modo que el emisor le pide al receptor la
ejecución de un método.

 Un objeto invoca un método como respuesta o reacción al


recibir un mensaje

Médico Paciente

Mensaje
Acción
(método)
8 – Conceptos de programación orientada a objetos

MENSAJES
Objeto 1 Objeto 2

DATOS DATOS

Métodos Métodos

Mensajes

DATOS DATOS

Métodos Métodos

Objeto 3 Objeto 4
8 – Conceptos de programación orientada a objetos
Paquetes
a) Entidad que engloba o contiene un conjunto de clases.
b) Las clases se almacenan u organizan en paquetes.
c) Un paquete puede contener sub-paquetes

d) Visibilidad/seguridad/acceso

Los paquetes pueden ser:


- Públicos
Las clases del paquete pueden ser usadas desde otro paquete

- No públicos
Las clases del paquete no pueden ser usadas desde otro paquete

e) Se usa el operador punto ‘.’ para acceder a las clases o sub-paquetes de un paquete.
8 – Conceptos de programación orientada a objetos
Abstracción
a) Detalla los atributos de la clase.
b) Detalla qué puede hacer una clase (métodos).
c) No detalla la implementación (código) de los métodos.

d) Se centra en lo que el objeto hace, no cómo lo hace.

Ejemplo, clases abstractas


Clase televisor
Atributos: Marca
Modelo
Tamaño de la pantalla
Métodos Apagar
Encender
Cambiar de canal

Esta clase se emplea para crear clases más específicas.


8 – Conceptos de programación orientada a objetos
Abstracción

No se da más detalles de métodos ni de propiedades, solo


una descripción o modelo muy general.
8 – Conceptos de programación orientada a objetos
Encapsulamiento
Mecanismo que permite definir módulos de software y utilizarlos como
cajas negras, sabiendo que hacen sin saber cómo lo hacen.

a) Muestra a las clase y objetos como cajas negras.


b) Los detalles de su implementación no son
completamente visibles o accesibles.
c) Oculta detalles a nivel de implementación y datos.

d) Para el acceso a atributos y métodos se otorgan


permisos.
e) Permite cambiar el funcionamiento interno de los
métodos de forma transparente al cliente.
8 – Conceptos de programación orientada a objetos
Encapsulamiento
Mecanismo que permite definir módulos de software y utilizarlos como
cajas negras, sabiendo que hacen sin saber cómo lo hacen.
8 – Conceptos de programación orientada a objetos
Encapsulamiento

 Toda clase tiene un conjunto de atributos y métodos


asociados a ella.

 Todos ellos están encapsulados o contenidos dentro


de la misma clase, son miembros de dicha clase.

 Esos métodos y atributos pueden ser utilizados por


otras clases sólo si la clase que los encapsula les
brinda los permisos necesarios para ello.
8 – Conceptos de programación orientada a objetos
Herencia

Superclase

Subclases

a) Se pueden definir clases en función de otras


clases.

b) Las subclases heredan de la superclase el estado


y los comportamientos.
8 – Conceptos de programación orientada a objetos
Herencia

Las clases hijas:

a) Pueden ser diferentes en algún aspecto de la clase padre.


b) Pueden añadir nuevas variables y comportamientos.
c) Pueden redefinir el comportamiento de un método.

d) La relación superclase – clase – subclase forman una jerarquía.


e) A menor jerarquía, más especializada es la clase.

Persona
Nombre
Dirección
RUT

Empleado Cliente Alumno


Sueldo Cuenta Carrera
8 – Conceptos de programación orientada a objetos
Interfaces
Son entidades que indican los atributos y métodos de una clase
existente y disponibles para su uso exterior.

La interfaz describe la forma en que un objeto se


conecta con el mundo.
La implementación describe cómo se logra la
responsabilidad prometida en la interfaz.
8 – Conceptos de programación orientada a objetos
Interfaces
Paso de mensajes
8 – Conceptos de programación orientada a objetos
Polimorfismo
Los objetos de una clase pueden
responder de distintas formas al
mismo método.

Cada objeto tiene los mismos


métodos pero implementaciones
distintas.
8 – Conceptos de programación orientada a objetos
Polimorfismo
8 – Conceptos de programación orientada a objetos
Polimorfismo

Si se tienen las clases Entero y Char, ambas


responderán de manera distinta al mensaje o
método "Sucesor"

MENSAJE
OBJETOS RESULTADOS
Sucesor
'A' 'B'
3 4
8 – Conceptos de programación orientada a objetos
Sobrecarga

a) Una clase puede tener más de un método con el mismo


nombre.
b) Se diferencian entre ellos por la cantidad de argumentos que
se les pasa al llamarlos.
8 – Conceptos de programación orientada a objetos

 Abstracción
Define entidades de forma muy general, abstracta, con sus características y
métodos más relevantes y comunes a todos los objetos que pueda
representar. Usados como clases padres para crear clases especializadas.

 Encapsulación
Define entidades y oculta los detalles de su implementación.
Solo permite acceso, mediante permisos, a lo que sea necesario para ciertos
objetos o clases.

 Modularidad
Empleo de objetos como módulos descentralizados y débilmente acoplados.

 Herencia
Permite el reúso de las clases para creación de otras clases más
especializadas.
Tarea
Responder las preguntas siguientes.

¿Cuál es la diferencia entre una Clase y un Objeto?


¿Qué es la Herencia?
¿Cuáles son las características en JAVA?
¿Qué es la Encapsulación?
¿Qué son las Clases Abstractas?
¿Qué son las Interfaces?
¿Qué es una clase?
¿Qué es Polimorfismo?
¿Qué es Sobrecarga?
Diferencia entre Interfaz y Clase
¿Qué es un objeto?
¿Qué es un hilo?

Responda el cuestionario online (obvie algunas preguntas de temas aun


no tratados):
https://www.digitallearning.es/tests/java-poo.html

También podría gustarte