Programacion Orientada A Objetos en Java 1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 57

Taller de

Programación

Razón social
00.00.2015
Evaluación previa
• ¿Qué es la POO?¿Que la diferencia de la
programación estructurada?
• ¿Qué son objetos? ¿Qué son clases?
• ¿Qué es un atributo, método, constructor?
• ¿Que es herencia, abstracción, encapsulación,
polimorfismo?

https://www.youtube.com/watch?v=XmUz5WJmJVU&t=34s
2
Logro de la sesión

Al finalizar la sesión, el alumno


comprenderá los principios de la
Programación Orientada a Objetos
usando JAVA.

3
Agenda

1.Introducción a Objetos
2.Objetos y Clases
▪ Métodos
▪ Atributos
▪ Constructor
▪ Destructor

4
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?

5
Introducción a Objetos
Entonces si queremos utilizar programación estructurada :

01 Se deben almacenar las características de cada


perro y doctor en variables.
Debe hacer procesos por cada tipo de interacción
02 entre ellos.
Debe hacer procesos para crear nuevos doctores y
03
perros
04 Será definitivamente un proceso con muchas líneas
de código 6
Introducción a Objetos

7
Introducción a Objetos
Desventajas y problemas:
Dificulta que varios programadores trabajen a la vez
01
por necesitar tener todo el código.
Es difícil de hacer código reutilizable. El programa
02 será muy extenso.

El código estructurado es difícil de relacionarlo con la


percepción que tenemos de la realidad. Esto hace
03
que se cometan más errores por falta de
entendimiento. 8
Introducción a Objetos
Algunos Ejemplos

¿Cómo percibimos la realidad los humanos?

Como objetos con significado 9


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)

10
Introducción a Objetos
Primero entenderemos como percibimos la realidad:
A un perro ¿qué lo distingue?
¿Cuándo existe?

11
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.
12
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
13
mundo.
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.
14
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()

clase
A los objetos se les llama instancias de una clase 15
Introducción a Objetos
Ejemplo1: 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
16
Introducción a Objetos
Perro

nombre
colorPelo atributos
Crear nuevo cantidadOjos
fido
ladrar()
caminar() métodos
objeto comer()

clase

Para crear a fido en JAVA:


Perro fido
fido = new Perro();
Definición:
TipoDato variable = new ConstructorClase(); 17
Introducción a Objetos
Perro

nombre
colorPelo atributos
Crear nuevo cantidadOjos
fido
ladrar()
caminar() métodos
objeto comer()

clase

Para que el objeto fido use sus atributos y métodos se le debe mandar
un mensaje mediante el operador . (punto): fido.ladrar();
Definición: objeto.metodo();
objeto.atributo; 18
Introducción a Objetos
Ejemplo 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 19
Introducción a Objetos
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

20
Introducción a Objetos
En resumen, hemos hecho POO en JAVA:
01 Hemos creado una clase llamada Perro

02 Le agregamos los atributos: nombre, colorPelo y cantidadOjos.

Le agregamos los métodos: ladrar(), caminar() y comer().


03
04 Definimos que su constructor asigne “marron” a colorPelo.

Creamos un objeto llamado fido, instancia de la clase Perro.


05 Lo creamos en la clase llamada Nueva.
21
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.} 22
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.
https://www.youtube.com/watch?v=ZY5pwm92cWQ&t=2s 23
Introducción a Objetos
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.
24
Introducción a Objetos
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.
25
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()
https://www.youtube.com/watch?v=RZOSJ2zuxIs caminar() métodos
https://www.youtube.com/watch?v=7ALMZymOs_s comer()
https://www.youtube.com/watch?v=YQinPQVpSd4
https://www.youtube.com/watch?v=jht07O7_R9w 26
Objetos y Clases en Java - Métodos
Métodos - Ejemplos:

27
Objetos y Clases en Java - Métodos
Métodos – Ejemplos (continuación de clase Planta):

28
Objetos y Clases en Java - Métodos
Métodos – Ejemplos (continuación crea objeto):

29
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) 30
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) {}
} 31
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
} 32
Objetos y Clases en Java - Métodos
Métodos – Nota adicional – uso de This - Ejemplo:

33
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. 34
Objetos y Clases en Java - Métodos
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
35
Cree su objeto y pruébelo ejecutando sus métodos.
Ejercicios
• Dado dos números diferentes,
Ejemplos
devolver el número mayor.
Cree un método para resolver el problema.

• Dado un número, determinar cuantos dígitos tiene. Cree un


método para resolver el problema.

• Dado 5 números, obtener la suma. Cree un método para


resolver el problema.

• Ordene 4 números, usando el método de la burbuja. Cree


un método para resolver el problema.
36
Objetos y Clases en Java - Atributos
Atributos – Ejemplos:

37
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 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)

38
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 ;

39
Objetos y Clases en Java - Atributos
Atributos - Nota adicional – get y set- Ejemplos:

40
Objetos y Clases en Java - Atributos
Atributos - Nota adicional – Ejemplos (cont…objetos):

41
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
} 42
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. 43
Objetos y Clases en Java - Atributos
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.

44
Objetos y Clases en Java - Constructor
Constructor – Ejemplos:

45
Objetos y Clases en Java - Constructor
Constructor – Ejemplos (continuación crea objeto):

46
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

47
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
}
48
Objetos y Clases en Java - Constructor
Constructor – Nota adicional – this - Ejemplos:

Un constructor llama a otro

49
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()
50
Objetos y Clases en Java - Constructor
Ejercicio 5
Cree una clase Oso con atributos privados String volumen y String colorPelo.
Además debe tener los constructores:

Sin parámetros: debe mostrar en consola un rugido. Debe actualizar los


atributos volumen y colorPelo con valores “Alto” y “Marron” respectivamente

Con parámetros: 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.


51
Objetos y Clases en Java - Destructor
Destructor - Ejemplo:

Forzamos la ejecución del garbage


collector para que simon se
52
destruya
Objetos y Clases en Java - Destructor
Destructor - Ejemplo:

Forzamos la ejecución del garbage


collector para que simon se
53
destruya
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.
54
¿Preguntas?

55
Resumiendo…
Responder lo siguiente:
¿Qué es un objeto? ¿Qué es una clase?
¿Cómo se crea un objeto?
¿Qué es un atributo?
¿Qué es un método?
¿Qué es un constructor?
¿Cómo se destruye un objeto?
56
FIN

57

También podría gustarte