Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

S2 TEPROO Programación Orientada A Objetos

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 96

UNIDAD 1: FUNDAMENTOS DE PROGRAMACIÓN

ORIENTADO A OBJETOS Y RELACIONES


BÁSICAS ENTRE CLASES

SEMANA N° 2

Programación orientada a objetos


usando Java

Jorge Bojórquez S.
Interés

Repasemos la última clase


Interés

¿Qué tan diferente es JAVA de C++?


AGENDA
LOGRO DE LA SESIÓN

Al término de la clase, el estudiante entenderá como se

desarrolla un programa orientado a objetos en java

mostrando dominio técnico del lenguaje, y una lógica

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

Recuerde Principios de Algoritmos e imagine:


• Se deben almacenar las características de cada perro y doctor en variables.
• Debe hacer procesos por cada tipo de interacción entre ellos.
• Debe hacer procesos para crear nuevos doctores y perros
• Será definitivamente un proceso con muchas líneas de código
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

¿Cómo percibimos la realidad los humanos?

Como objetos con significado


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

Primero entenderemos como percibimos la realidad:


A un perro ¿que lo distingue?
¿Cuando existe?
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

El perro es un ejemplo de objeto, el cual tiene:


1. Características: En términos de la POO se llaman atributos.
2. Ejecuta acciones: Las llamaremos métodos.
3. Nace:
• Cada objeto se crea de sus Genes (plantilla), y que llamaremos clase, la que
que define sus atributos y métodos.
• Al crearse lo primero que hace es construirse.
• Al crearse el nuevo objeto ocupará su propio lugar.
4. Muere: Al destruirse se finaliza. Deja de ocupar lugar.
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()

A los objetos se les llama instancias de una clase


clase
Descubrimiento
INTRODUCCIÓN A OBJETOS

EJEMPLO EN JAVA
1.- Definir clase Perro

Atributos: Deben indicar el


tipo de dato que son

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:

TipoDato variable = new ConstructorClase();


Descubrimiento
INTRODUCCIÓN A OBJETOS

Para que el objeto fido use sus atributos y métodos se le debe mandar un mensaje

mediante el operador . : fido.ladrar();

Definición: objeto.metodo();
objeto.atributo;
Descubrimiento
INTRODUCCIÓN A OBJETOS

2.- Crear objeto fido a partir de clase Perro y usarlo

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

3.- Resultado al ejecutar la clase Nueva

Es nulo porque aún no se


le asignaba valor al
atributo nombre del objeto

Sale el nombre porque una


línea antes se le asignó valor
al atributo nombre del objeto
Descubrimiento
INTRODUCCIÓN A OBJETOS

En resumen, hemos hecho POO en JAVA:


1. Hemos creado una clase llamada Perro
2. Le agregamos los atributos: nombre, colorPelo y cantidadOjos.
3. Le agregamos los métodos: ladrar(), caminar() y comer().
4. Definimos que su constructor que asigne “marron” a colorPelo
5. Creamos un objeto llamado fido instancia de la clase Perro. Lo creamos en la clase
llamada Nueva.
Descubrimiento
INTRODUCCIÓN A OBJETOS

Pregunta de repaso para saber si entendimos la relación entre clases y objetos:

¿ Cual es la ventaja o ahorro de usar clases y en vez usar


objetos de frente para programar en java ?

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 – Ejemplos (continuación de clase Planta):


Descubrimiento
OBJETOS Y CLASES EN JAVA - MÉTODOS

Métodos – Ejemplos (continuación crea objeto):


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)

• Un método puede tener varias listas de parámetros a la vez. Debe copiarse el


método y usar una lista de diferente de parámetros. Esto se llama overloading.

public class Perro {


void ladrar () {}
void ladrar (int volumen) {}
void ladrar (int volumen, int tonoAgudo) {}
}
Descubrimiento
OBJETOS Y CLASES EN JAVA - MÉTODOS

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;

• 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 : no se podrán sobreescribir.
• abstract : para extender una clase

Accesible TipoContenido TipoDato nombreMetodo (tipo1 par1, tipo2 par2, …){


//aca va el codigo
}
Descubrimiento
OBJETOS Y CLASES EN JAVA - MÉTODOS

Métodos – Nota adicional – uso de This - Ejemplo:


Descubrimiento
OBJETOS Y CLASES EN JAVA - MÉTODOS

Métodos – Nota adicional:

private TipoDato nombreAtributo ;

public void metodo1(TipoDato variable) {


this.nombreMetodo();
this.nombreAtributo = variable; //this se refiere a la clase
}

• 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

Ejercicio 3.- Cree una clase Arbol con métodos:


• crecer(): privado que retorna double y con un parámetro double llamado factor.
Retorna el factor multiplicado por 2. cree también el método crecer() con parametros
int x , int z que retorne x*y*3.
• crearHojas(): publico , no retorna nada pero si emite un mensaje que es la
concatenación de 2 parámetros texto
• fotosintesis(): publico que no retorna nada ni solicita parámetros pero llama al
método crecer, el resultado lo muestra en consola. Asuma factor = 0.7

Cree su objeto y pruébelo ejecutando sus métodos.


Descubrimiento
OBJETOS Y CLASES EN JAVA - ATRIBUTOS

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.

Accesible TipoContenido TipoDato nombreAtributo ;


Descubrimiento
OBJETOS Y CLASES EN JAVA - ATRIBUTOS

Atributos - Nota adicional – get y set- Ejemplos:


Descubrimiento
OBJETOS Y CLASES EN JAVA - ATRIBUTOS

Atributos - Nota adicional – Ejemplos(cont... objeto):


Descubrimiento
OBJETOS Y CLASES EN JAVA - ATRIBUTOS

Atributos – Nota adicional – get y set :


• Serán solo lectura o escritura independientemente si se usan métodos
antecediéndoles las letras set o get y haciendo la variable privada de esta manera:

private TipoDato nombreAtributo ;

public TipoDato getNombreAtributo() {


return nombreAtributo ; //solo lee atributo
}

public void setNombreAtributo(TipoDato nombreAtributo) {


this.nombreAtributo = nombreAtributo; //solo escribe atributo
}
Descubrimiento
OBJETOS Y CLASES EN JAVA - ATRIBUTOS

Atributos – Nota adicional – get y set :

private TipoDato nombreAtributo ;


…….
public void setNombreAtributo(TipoDato nombreAtributo) {
this.nombreAtributo = nombreAtributo; //this se refiere a la clase
}

• 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

Ejercicio 4.- Cree una clase Humano con los atributos:


• altura : privado tipo double

• genero : publico tipo String


• edad : privado tipo int y solo con metodo set (setter)

• humor : privado tipo String y solo con metodo get (getter)

Cree un objeto en base a este y pruebe los atributos asignándoles valores y


ejecutándolos.
Descubrimiento
OBJETOS Y CLASES EN JAVA - CONSTRUCTOR

Constructor – Ejemplos:
Descubrimiento
OBJETOS Y CLASES EN JAVA - CONSTRUCTOR

Constructor – Ejemplos (continuación crea objeto):


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.

• Si no se define un constructor igual la clase tendrá un constructor por defecto (sin


parámetros).
• Gato michifus = new Gato(); // Gato es una clase sin constructor
Descubrimiento
OBJETOS Y CLASES EN JAVA - CONSTRUCTOR

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)

Accesible NombreClase (tipo1 par1, tipo2 par2, …){


//aca va el codigo
}
Descubrimiento
OBJETOS Y CLASES EN JAVA - CONSTRUCTOR

Constructor – Nota adicional – this - Ejemplos:

Un constructor
llama a otro
Descubrimiento
OBJETOS Y CLASES EN JAVA - CONSTRUCTOR

Constructor – Nota adicional:

private TipoDato nombreAtributo ;

public NombreClase(TipoDato variable) {


this.nombreAtributo = variable; //this se refiere a la clase
}

• Para usar atributos de la clase dentro un constructor se debe anteceder la palabra


reservada this.
• this representa a la clase.
• this.nombreAtributo hace referencia al atributo de la clase.
• Un constructor puede usar a otro usando this()
Experiencia
ESTRUCTURA PPT
EJERCICIO 5

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:

Forzamos la ejecución del garbage


collector para que simon se destruya
Descubrimiento
OBJETOS Y CLASES EN JAVA - DESTRUCTOR

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.

Cada clase debe iniciar


indicando a que paquete
pertenece

Cada paquete puede agrupar


varias clases
Descubrimiento
PAQUETES

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

Ejemplo: para el paquete zoologico ellos lo


llamarían com.ibm.zoologico
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Use la siguiente metodología:


1. Debe analice el texto y busque las clases. Estas suelen tener un nombre o ser un
sujeto. Puede ser algo tangible, un rol, una organización, un incidente, un
documento, un almacén, un lugar, entre otros.
2. Buscar cuales son los atributos, métodos de las clases identificadas. Busque si hay
atributos que deban tener valores por defecto para encontrar a los constructores
3. Vuelva a revisar el problema y valide que las clases definidas son necesarias y
tienen sentido.
4. Relacione las clases identificando si unas clases serán atributos de otras.
5. Cree una clase ejecutable en la que resuelva lo que se pida usando las clases
según se requiera.
No se olvide que a diferencia de un atributo común (p.e. int, String, double, etc.) antes de
usar un atributo objeto ( instancias de clases ) debe ser necesariamente instanciado
(Clase atributo = new Clase()), sino no existirá en memoria. Tampoco olvide que los
atributo objeto suelen contener a su vez atributos por lo que tras instanciarlos deberá
llenar datos a dichos atributos.
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 1: Crea las siguientes clases:


•Delfin: con atributo nombre (use get y set) y método nadar() que muestre el mensaje
“Mira como nado”.
•Orca: con atributo nombre (use get y set) y método saltar() que muestre el mensaje
“Arriba voy”
•Acuario: con un atributo dirección, dos atributos de la clase Delfin y uno de la clase
Orca (use get y set) y un método listaNombres() que muestra en pantalla los nombres
de los Delfines y de la Orca.
•Clase ejecutable: Cree un acuario, ingrese su dirección. Cree dos Delfines y una Orca
asignándoles nombre a todos ellos. Asigne los Delfines y la Orca a los correspondientes
atributos del Acuario. Use el método listaNombres(). Llame al método nadar() de uno de
los delfines del acuario y al saltar() de la orca del acuario.
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 1: Crea las siguientes clases:


•Delfin: con atributo nombre (use get y set) y método nadar() que muestre el mensaje
“Mira como nado”.
•Orca: con atributo nombre (use get y set) y método saltar() que muestre el mensaje
“Arriba voy”
•Acuario: con un atributo dirección, dos atributos de la clase Delfin y uno de la clase
Orca (use get y set) y un método listaNombres() que muestra en pantalla los nombres
de los Delfines y de la Orca.
•Clase ejecutable: Cree un acuario, ingrese su dirección. Cree dos Delfines y una Orca
asignándoles nombre a todos ellos. Asigne los Delfines y la Orca a los correspondientes
atributos del Acuario. Use el método listaNombres(). Llame al método nadar() de uno de
los delfines del acuario y al saltar() de la orca del acuario.
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 1: Planteamiento de Solución:


Vemos que debemos crear dos clases que contienen atributos comunes y un método.
También se debe crear una tercera clase con un atributo común, un método y tres
atributos objetos (2 Delfin , 1 Orca).
Finalmente se hará una clase ejecutable que creará variables objeto (Delfines y Orca)
las que serán asignadas a los atributos de la variable objeto Acuario. También se le
asignará una dirección a su variable del mismo nombre.
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 1: Solución - Clases Delfin y Orca


Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 1: Solución – Clase Acuario


Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 1: Solución – Clase Ejecutable


Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 2: Uso de Objetos con arreglos


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

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

Ejercicio 2: Solución - Clase Zapato

Llama a calculaPrecio () para que en base


a la talla y modelo calcule el precio
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 2: Solución - Clase Empresa

Muestro
todos los
zapatos que
existen, es
decir que no
sean null
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 2: Solución - Clase Ejecutable

Se crea un arreglo de zapatos para crear


cada zapato en el. Posteriormente se
asigna al arreglo de zapatos a la empresa

Este programa mediante opciones permite agregar nuevos


zapatos o listar los ingresados de manera repetitiva
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 2: Solución - Clase Ejecutable - continuación

Se asigna al arreglo de zapatos


con datos al de la empresa
Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Ejercicio 2: Solución - Resultado consola


Descubrimiento
COMO RESOLVER UN PROBLEMA CON OBJETOS

Actividad 1: Se desea desarrollar un sistema para una concesionaria de vehículos. Los


vehículos se clasifican en: autos, camionetas y motocicletas. Todos los vehículos tienen
un código, una marca, tipo (auto, camioneta, etc.), un modelo (año), una patente y un
kilometraje. Además, la concesionaria lleva un registro de las ventas realizadas, cada
registro consiste de la siguiente información: monto de la venta, vehículo vendido
(código), apellido, nombre y DNI del comprador. Tras registrar unas ventas debe mostrar
el total vendido por auto, camioneta y vehículo.
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:

Son dos clases casi


iguales excepto por que
uno tiene el atributo static
Descubrimiento
STATIC (TIPO DE CONTENIDO)
•Ejemplo atributo static:

El no static se reinicia por


objeto, en cambio el static no
porque no crea un nuevo
atributo por cada objeto
Descubrimiento
STATIC (TIPO DE CONTENIDO)
•Ejemplo método static:

Se llama al método static


sin tener que instanciar la
clase Calcular
Descubrimiento
MÉTODO MAIN

Responder lo siguiente: ¿Qué significa cada palabra de?

public static void main(String[] args) {


}
Descubrimiento
MÉTODO MAIN

El método principal main de una Clase Java es inalterable:


• Siempre debe incluir los calificadores: public y static.

• No puede retornar un valor, siempre debe indicar void como retorno.


• El método main es un nombre estándar utilizado por la JVM para iniciar la
ejecución de cualquier clase Java.
• Su parámetro de entrada siempre será un array de String's (String[]). La
variable puede ser una diferente a args, por ejemplo (String[] parametros).
• Si tiene más métodos, se podrán usar si dentro del main la clase se instancia a
si misma previo a llamarlas.
Descubrimiento
MÉTODO MAIN

Ejemplo:

Al ser static no se instancia

La clase debe instanciarse


a si misma para usar el
método mensaje1
Descubrimiento
CONVERSIÓN DE TIPOS DE DATOS
•Casteo explícito:
• Convierte una variable de un tipo de dato en otro y el valor que contiene la
variable transforma también. Tenemos que especificarlo nosotros.

Sin el casteo no veríamos


los decimales

Con el casteo se truncan


los decimales
Descubrimiento
CONVERSIÓN DE TIPOS DE DATOS
•Casteo explícito (cont…):
• Debe anteceder a la variable el nuevo tipo de dato entre paréntesis. Ejemplo
Int b = (int) 3.45;
• Puede convertir hacia tipos que usan más espacio de memoria (upcasting) o
menos memoria (downcasting).
• Down casting:
• int -> byte, short, char
• long -> byte, short, char, int
• float -> byte, short, char, int, long
• double -> byte, short, char, int, long, float
• Up casting:
• int -> long, float, double
• long -> float, double
• float -> double
Descubrimiento
CONVERSIÓN DE TIPOS DE DATOS
•Casteo implícito:
• Convierte una variable de un tipo de dato en otro y el valor que contiene la
primera variable se conserva, pero java lo hace por nosotros.
Descubrimiento
CONVERSIÓN DE TIPOS DE DATOS
•Convertir números en String:
• A continuación varias formas de hacer la conversión. Para esto la clase String
tiene dos métodos y la clase Integer un método más.

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

Crea instancia de clase hija:

Up casting implícito:

Up casting explícito:
PPTevidenciado
Aprendizaje
ESTRUCTURA

EJERCICIO PROPUESTO

Use el archivo adjunto de ejercicio propuesto y en grupos de 4 resuélvalo.


ESTRUCTURA PPT
Instrumento de evaluación

Logrado En Proceso Inicio No Logrado


Criterio 5 3 1 0 Puntaje Puntaje
Esper. Real
Trabajo Todos Solo 3 Solo 2 Menos de 5
grupal colaboran colaboran colaboran dos
colaboran
Modelado Diagrama Diagrama tiene Diagrama Diagrama 5
tiene todas la mayoría de tiene la mitad tiene menos
las tablas las tablas de las tablas de la mitad
atributos y atributos y atributos y de las tablas
relaciones relaciones relaciones atributos y
necesarios necesarios necesarios relaciones
necesarios

Orden El diagrama El diagrama es El diagrama El diagrama 5


es fácil de medianamente es poco fácil es difícil de
leer fácil de leer de leer leer

Puntualidad Presenta Presenta a Presenta 2 Presenta 5


antes de tiempo minutos tarde mas de 2
tiempo min. tarde
Referencias

• https://codigofacilito.com/cursos/JAVA
• https://www.programarya.com/Cursos/Java
• https://javadesdecero.es/

También podría gustarte