S2 TEPROO Programación Orientada A Objetos
S2 TEPROO Programación Orientada A Objetos
S2 TEPROO Programación Orientada A Objetos
SEMANA N° 2
Jorge Bojórquez S.
Interés
coherente.
Experiencia
ESTRUCTURA PPT
EJERCICIO 1
Al proyecto anterior agregue una clase Leon que cuando se ejecute Ruja, de manera
manual usando block de notas y ejecútela en la ventana de comandos.
Solución:
1. Cree un archivo en el block de notas llamado Leon.java. Que empiece en mayúscula
por ser una clase. Edite el archivo.
2. Agregue el código similar al “hola mundo” ya visto anteriormente solo que cambiando
el mensaje por el rugido. Asegúrese que el nombre de la clase corresponda
exactamente con el del archivo. Que empiece en mayúscula por ser una clase.
3. Pre-compilela: desde la ventana de comandos: javac.exe Leon.java
4. Ejecútela: desde la ventana de comandos: java.exe Leon.class
Descubrimiento
INTRODUCCIÓN A OBJETOS
Imagine que programará un juego de una perrera. Debe contemplar los perros, los
doctores y su interacción. ¿Cómo haría?
Descubrimiento
INTRODUCCIÓN A OBJETOS
Desventajas y problemas:
• Dificulta que varios programadores trabajen a la vez por necesitar tener todo el
código.
• Es difícil de hacer código reutilizable. El programa será muy extenso.
• El código estructurado es difícil de relacionarlo con la percepción que tenemos de la
realidad. Esto hace que se cometan más errores por falta de entendimiento.
Descubrimiento
INTRODUCCIÓN A OBJETOS
La necesidad de hacer mejores programas en menos tiempo dio pie a otros paradigmas
de programación como la POO (Programación Orientada a Objetos)
Descubrimiento
INTRODUCCIÓN A OBJETOS
A un perro lo distingue:
1. Características:
• Color, orejas, peso, patas, pelo, ojos, temperamento,
cola.
2. Ejecuta acciones:
• Come, corre, ladra, mover la cola, espera, bebe agua,
dar la pata.
Descubrimiento
INTRODUCCIÓN A OBJETOS
3. Nace
• No se crea de la nada, sus Genes sirven de plantilla. De
hecho esta plantilla es la que predispone las
características y acciones que podrá ejecutar el perro
• Para existir necesita nacer (crearse).
• Al crearse ocupará un lugar en el mundo.
4. Muere
• Deja de existir al morir (destruirse).
• Cuando se destruye pierde su espacio en el mundo.
Descubrimiento
INTRODUCCIÓN A OBJETOS
En resumen, una clase tiene atributos, métodos y constructor. Esta será plantilla de un
nuevo objeto.
Perro
nombre
colorPelo atributos
Crear nuevo cantidadOjos
fido
ladrar()
caminar() métodos
objeto comer()
EJEMPLO EN JAVA
1.- Definir clase Perro
Métodos: Se le antecede
void si no retornará ningún
valor
Constructor: Como un
método pero se llama igual a
la clase. No le antecede void
ni nada
Destructor: No es necesario
pues es automático
Descubrimiento
INTRODUCCIÓN A OBJETOS
El tipo de dato de
fido es la clase a
Para crear a fido en JAVA: la que instancia
fidoPerro();
Perro fido = new
Definición:
Para que el objeto fido use sus atributos y métodos se le debe mandar un mensaje
Definición: objeto.metodo();
objeto.atributo;
Descubrimiento
INTRODUCCIÓN A OBJETOS
Creación de
nuevo objeto
(new)
Escriba
objeto.atributo u
objeto.metodo
para usarlos
Nótese que la palabra new crea espacio en memoria para el nuevo objeto al ejecutar el
constructor
Descubrimiento
INTRODUCCIÓN A OBJETOS
Tip: piense en el código necesario para crear los objetos fido, firulais, jack, doge, etc.
Descubrimiento
INTRODUCCIÓN A OBJETOS
Respuesta:
Solo usando objetos tendríamos que definir cada uno de ellos desde cero una y otra vez,
es decir que para crear a fido, firulais, jack, doge tendríamos que hacer el mismo código
4 veces!!! lo que es muy ineficiente.
Experiencia
ESTRUCTURA PPT
EJERCICIO 1
Ejercicio 1.- Cree una clase Arbol con métodos: crecer(), crearHojas() y fotosintesis().
También debe tener los atributos cantidadHojas, tipo, antigüedad, altura. Agregue un
constructor para asignar valores iniciales a todos los atributos. Cree un objeto en base a
este y pruebe los atributos mostrando sus valores y ejecutando sus métodos.
Experiencia
ESTRUCTURA PPT
EJERCICIO 2
Ejercicio 2.- Cree una clase Humano con métodos: hablar(), correr() y comer() que
emitan mensajes. También debe tener los atributos altura, genero, edad, carácter.
Agregue un constructor que muestre el mensaje “Soy humano”. Cree un objeto en base
a este y pruebe los atributos asignándoles valores y ejecutando sus métodos.
Descubrimiento
OBJETOS Y CLASES EN JAVA
Ahora que hemos creado objetos a partir de clases con sus atributos, métodos y
constructor, vamos a explicarlos con más detalle.
Perro
nombre
colorPelo atributos
cantidadOjos
ladrar()
caminar() métodos
comer()
Descubrimiento
OBJETOS Y CLASES EN JAVA - MÉTODOS
Métodos - Ejemplos:
Descubrimiento
OBJETOS Y CLASES EN JAVA - MÉTODOS
Métodos - Definición:
•Ejecuta cálculos, llama otros métodos, cambia valor de atributos, usa otras clases,
entre otros.
•Se le ejecuta escribiendo el objeto, punto y el nombre del método. Finalizar con ().
Ejemplo:
• fido.caminar();
• girasol.crecer();
•Puede o no ser accesible para objetos / clases
• public : todos tienen acceso / lo ven
• private : solo la clase donde se define puede acceder / ver
• protected : solo acceden clases de la misma carpeta(paquete) o subclases
• por defecto : solo acceden clases de la misma carpeta(paquete)
Descubrimiento
OBJETOS Y CLASES EN JAVA - MÉTODOS
Métodos - Definición:
• Puede o no solicitar parámetros que serán de un tipo de dato o clase. Use comas
para separarlos.
void nuevaPersona(Int edad, String nombre)
Métodos - Definición:
• Puede retornar un valor de un tipo de dato como resultado, sino retornará void
(vacío). Para el retorno usar el comando return junto a un valor o variable
return dato;
• Para usar atributos o métodos de la clase debe anteceder la palabra reservada this.
• this representa a la clase.
• this.nombreAtributo hace referencia al atributo de la clase. this.nombreMetodo() al
método.
Experiencia
ESTRUCTURA PPT
EJERCICIO 3
Atributos - Ejemplos:
Descubrimiento
OBJETOS Y CLASES EN JAVA - ATRIBUTOS
Atributos - Definición:
• Se usa para escribir o leer valores o datos.
• Se le usa escribiendo el objeto, punto y el nombre del atributo. Ejemplo:
fido.nombre = “fido”;
• Puede o no ser accesible para objetos / clases. No permite que un atributo sea solo
e lectura o solo escritura.
• public : todos tienen acceso / lo ven
• private : solo la clase donde se define puede acceder / ver
• protected : solo acceden clases de la misma carpeta(paquete) o subclases
• por defecto : solo acceden clases de la misma carpeta(paquete)
Descubrimiento
OBJETOS Y CLASES EN JAVA - ATRIBUTOS
Atributos - Definición:
• Son de un tipo de dato
• Puede o no ser de un tipo de contenido (Por explicar)
• static : no se necesita crear objeto para usarlo. Está a nivel de clase.
• final : para constantes.
• El parámetro se llama igual que la variable de la clase a la cual antecede this. para
diferenciarse. this.nombreAtributo es la variable privada de la clase.
• this representa a la clase.
• Se recomienda usar getters y setters y mantener a las variables de la clase privadas.
Experiencia
ESTRUCTURA PPT
EJERCICIO 4
Constructor – Ejemplos:
Descubrimiento
OBJETOS Y CLASES EN JAVA - CONSTRUCTOR
Constructor – Definición:
• Construye adecuadamente el objeto, es decir, lo deja listo para ser usado. Se usa
para asignar valores a atributos o hacer procesos, al crearse el objeto.
• Se le ejecuta al crear un objeto mediante la palabra reservada new. Ejemplo:
• Perro fido = new Perro(); //Perro es clase con constructor
• Elefante elmer = new Elefante(“gris”,5); //Constructor con param.
Constructor – Definición:
Es parecido a los métodos sin embargo:
• Necesariamente tiene el nombre de la clase.
• No retornan ningún tipo de dato, ni siquiera void. (Diferencia)
• Puede o no tener parámetros. Puede tener varias listas de parámetros a la vez
(Semejanza)
• Puede o no ser accesible para objetos / clases como public, private, protected o
default (Semejanza)
• No tiene tipo de contenido como static, final o abstract (Diferencia)
Un constructor
llama a otro
Descubrimiento
OBJETOS Y CLASES EN JAVA - CONSTRUCTOR
Ejercicios 5.- Cree una clase Oso con atributos privados String volumen y String
colorPelo. Además debe tener los constructores:
• Sin parametros: debe mostrar en consola un rugido. Debe actualizar los atributos
volumen y colorPelo con valores “Alto” y “Marron” respectivamente
• Con parametros: pedirá el volumen y color de pelo y los actualizará a los atributos
volumen y colorPelo respectivamente. Mostrará en consola un mensaje indicando el
color de Pelo y volumen de rugido del oso.
Cree su objeto y pruébelo ejecutando sus constructores.
Descubrimiento
OBJETOS Y CLASES EN JAVA - DESTRUCTOR
Destructor - Ejemplo:
Destructor - Definición:
• Java destruye sus objetos automáticamente mediante su proceso Garbage Collector.
Requiere previamente asignar null al objeto. Entonces se liberará el espacio de
memoria usada.
• Al ser destruido un objeto llama a su método finalize(), este tiene acceso protected y
existe en cada clase y puede ser reescrito pero solo para hacer procesos finales no
relacionados con la destrucción del mismo objeto.
Descubrimiento
PAQUETES
Conforme los programas tienen más funcionalidades uno se ve obligado a usar más
clases y eventualmente se genera un desorden por la cantidad de archivos o incluso un
conflicto de nombres de clases por necesitar llamar a dos clases diferentes de la misma
manera.
¿Cómo podríamos solucionarlo?
Jorge Bojorquez
Descubrimiento
PAQUETES
Si tomamos como ejemplo los archivos de tareas, practicas y demás de los cursos de la
universidad se tendría el mismo problema. Tu lo solucionas guardando archivos de son
de un tema en común en una misma carpeta.
Descubrimiento
PAQUETES
Java implementa esta misma manera, solo que a cada carpeta le llama paquete. Y
deben ser escritas en minúsculas.
Definición: en carpeta src cree un nuevo paquete en minúsculas (para evitar conflicto
con clases) y dentro cree sus clases.
Cada clase dentro de esa carpeta debe tener como primera línea de código a la palabra
reservada package junto al nombre de carpeta.
Todas las clases dentro del mismo paquete son visibles entre si.
package paquete;
Descubrimiento
PAQUETES
Si crea carpetas dentro de otras deberá podrá referirse a ella cualquiera de ellas a partir
de la carpeta externa e indicando cada subcarpeta separadas por un punto:
package paquete1.paquete2;
Descubrimiento
PAQUETES
Si la clase a la que quiero referirme está en otro paquete debo usar la palabra reservada
import. Irá debajo de package y antes de la definición de la clase
import paquete1.paquete3;
Descubrimiento
PAQUETES
Nota adicional:
Al desarrollar aplicaciones en java para que los paquetes de una empresa no tenga
problemas del mismo nombre con los paquetes de otra se tiene la convención que ellos
deben iniciar con el nombre de dominio a la inversa:
Dominio: ibm.com
Paquetes empiezan con: com.ibm
Ejercicio 2: Solución
La empresa zapatitos fabrica 3 modelos de zapatos con su marca propia. Lista de
precios de venta:
1.- Modelo Ejecutivo en talla 8……….345.50
2.- Modelo Premier en talla 8…………298.70
3.- Modelo Emperador en talla 8……246.00
Se planea fabricar estos modelos también en tallas 9 y 10. Se sabe que por cada
aumento de talla, su precio incrementa 10 pesos: Es decir que el modelo Emperador
talla 9 costará 256.00 y talla 10, 266.00. Haga un programa que calcule y muestre el
precio a partir del modelo y talla. De manera repetitiva que permita crear nuevos
modelos y los asigne a la empresa, Liste los modelos existentes que vende la empresa o
salga del programa.
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS
Muestro
todos los
zapatos que
existen, es
decir que no
sean null
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS
Actividad 2: Crear una clase Equipo que contenga los atributos Partidos_Ganados ,
Puntos_a_Favor, crear 5 equipos y darle valores a sus atributos, ordenar por
Partidos_Ganados de mayor a menor y en el caso de que hubiese equipos con los
mismos Partidos_Ganados se mirara quien tiene más Puntos_a_Favor para saber cual
esta primero.
Descubrimiento
FINAL (TIPO DE CONTENIDO)
•Problema que resuelve:
• Mejora uso de la memoria con atributos que tengan valores constantes.
• Tener métodos que no deban ser sobreescritos.
• Tener clases que no puedan heredarse.
•Cómo lo soluciona:
• Los atributos con el calificador final tras asignárseles un valor no puede
modificarse.
• Los métodos con el calificador final se pueden heredar pero no pueden ser
sobreescritos
• Las clases con el calificador final no se pueden heredar.
Descubrimiento
FINAL (TIPO DE CONTENIDO)
•Ejemplo atributo y método final:
No se puede modificar
atributo final
No se puede sobreescribir
método final
Descubrimiento
FINAL (TIPO DE CONTENIDO)
•Ejemplo clase final:
No se puede heredar
clase final
Descubrimiento
STATIC (TIPO DE CONTENIDO)
•Problema que resuelve:
• Evitar saturar el uso de la memoria con atributos si es que no van a ser
diferentes por cada objeto.
• Tener métodos en una clase que pueda usarse sin tener que instanciar dicha
clase previamente.
•Cómo lo soluciona:
• Los atributos con el calificador static se les asigna un único espacio de memoria
por clase en vez de por objeto.
• Los métodos con el calificador static pertenecen a la clase en vez del objeto. Se
pueden usar sin instanciar la clase como por ejemplo los métodos de la clase
String o la clase Math.
Descubrimiento
STATIC (TIPO DE CONTENIDO)
•Ejemplo atributo static:
Ejemplo:
También se puede
hacer con otros tipos
numéricos como
double, long ,etc. Ellos
tienen sus propias
clases Double, Long,
etc.
Descubrimiento
CONVERSIÓN DE TIPOS DE DATOS
•Convertir números en String (cont…):
• Nótese que cada tipo de dato numérico tiene su clase correspondiente, por
ejemplo int tiene Integer y son diferentes:
• int a; //crea la variable int
• Integer b; //crea el objeto Integer
• Las clases numéricas aportan métodos para transformar los tipos de datos. Por
ejemplo, los más importantes para Integer son:
• String z = Integer.toString( int a );
• int a = b.parseInt( String s );
• Integer b = Integer.valueOf( String s );
• int a = b.intValue();
• String s = b.toString();
• boolean boo = b.equals( Object obj );
Descubrimiento
CONVERSIÓN DE TIPOS DE DATOS
•Convertir String en números:
• A continuación varias formas de hacer la conversión. Para esto la Integer aporta
sus métodos. Podrá hacer lo mismo con otros Clases de tipos de datos
numéricos
Descubrimiento
CONVERSIÓN DE TIPOS DE DATOS
•Casteo objetos:
• Gracias a la herencia puede hacer casteo entre objetos padres e hijos. Ejemplos
Up casting implícito:
Up casting explícito:
PPTevidenciado
Aprendizaje
ESTRUCTURA
EJERCICIO PROPUESTO
• https://codigofacilito.com/cursos/JAVA
• https://www.programarya.com/Cursos/Java
• https://javadesdecero.es/