You are on page 1of 38

Programación Básica

Sesión 6:
Clases y objetos.
Contenido

• Introducción.
• Clases.
• Objetos.
• Súper clases
• Encapsulamiento
Introducción
Objetos y atributos

Color: Café

Alto: 1.2m
Color: Gris
Material: Madera
Alto: 0.3m

Color: Café Edad: 10 meses

Alto: 0.2m

Edad: 2 meses
Imágenes tomadas de:
https://www.google.com/url?sa=i&url=https%3A%2F%2Fdefinicion.de%2Fsilla%2F&psig=AOvVaw3fCRT7f_tM-
EX0I6RiZfsm&ust=1621987534907000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPCY88jE4_ACFQAAAAAdAAAAABAL
https://www.google.com/url?sa=i&url=https%3A%2F%2Fcomodibujar.club%2Fperro-kawaii%2F&psig=AOvVaw1fz07fa9ua-
LI19GxYAKY0&ust=1621987729010000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCODh96XF4_ACFQAAAAAdAAAAABAD
https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.freepik.es%2Fvector-premium%2Fpersonaje-animal-dibujos-animados-gato-atigrado-
gris_6418388.htm&psig=AOvVaw1jo9wo0fIf28-yJhT82SM9&ust=1621987868087000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCNim-ezF4_ACFQA
Comportamientos
Ronronear

Ladrar

Reparar

Comer

Dormir

Romperse

Imágenes tomadas de:


https://www.google.com/url?sa=i&url=https%3A%2F%2Fdefinicion.de%2Fsilla%2F&psig=AOvVaw3fCRT7f_tM-EX0I6RiZfsm&ust=1621987534907000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPCY88jE4_ACFQAAAAAdAAAAABAL
https://www.google.com/url?sa=i&url=https%3A%2F%2Fcomodibujar.club%2Fperro-kawaii%2F&psig=AOvVaw1fz07fa9ua-LI19GxYAKY0&ust=1621987729010000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCODh96XF4_ACFQAAAAAdAAAAABAD
https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.freepik.es%2Fvector-premium%2Fpersonaje-animal-dibujos-animados-gato-atigrado-gris_6418388.htm&psig=AOvVaw1jo9wo0fIf28-
yJhT82SM9&ust=1621987868087000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCNim-ezF4_ACFQAAAAAdAAAAABAD
Clases

Imágenes tomadas de:


https://www.google.com/url?sa=i&url=https%3A%2F%2Freinoanimalia.fandom.com%2Fes%2Fwiki%2FTigre&psig=AOvVaw1w4oKBY2nOrCGj6NoBGnhc&ust=16
21989708469000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPDt-5PN4_ACFQAAAAAdAAAAABAD
https://www.google.com/url?sa=i&url=https%3A%2F%2Fpixabay.com%2Fphotos%2Fcat-baby-baby-cat-kitten-cat-cute-
4201051%2F&psig=AOvVaw3TTJXsc1mnRQ5WAekSSCnn&ust=1621989209405000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCKjT_7nL4_ACFQAAAAAdAAAA
ABAJ
https://www.google.com/url?sa=i&url=https%3A%2F%2Fes.123rf.com%2Fphoto_145380758_cat-baby-tabby-kitten-cute-beautifu-on-white-
background.html&psig=AOvVaw3TTJXsc1mnRQ5WAekSSCnn&ust=1621989209405000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCKjT_7nL4_ACFQAAAAAdA
AAAABAP
https://www.google.com/url?sa=i&url=https%3A%2F%2Fes-la.facebook.com%2FSausageDogCentral%2Fposts%2Fbaby-sausage-dog-in-a-sweater-
%25EF%25B8%258Fprotect-your-doxies-back-
httpbitlyoriginaldachshu%2F10157723272032562%2F&psig=AOvVaw1GW8G1bTgkGiu9CQHeQLqH&ust=1621989497847000&source=images&cd=vfe&ved=0CAI
QjRxqFwoTCJjEtvTL4_ACFQAAAAAdAAAAABAD
Programación orientada a objetos
(POO)
Representar acciones o cosas de la vida real.

Interacciones entre objetos.

Se comunican entre sí de manera predefinida.

Se usan clases, objetos, métodos, propiedades, estados, etc.

Abstracción, polimorfismo, herencia, modularidad y


encapsulamiento.
Clases
Clases

Representación abstracta de cosas de la realidad.

Plantillas para modelar un objeto.


Atributos
Características del modelo del objeto.

Toda instancia de esta clase debe tener todos los atributos definidos.

Se almacenan como variables (deben tener un tipo de dato definido).

String
String
String
int
int
Métodos
Comportamientos del modelo del objeto.

Toda instancia de esta clase tiene todos los métodos.

Cada método tiene entradas y salidas.


Constructor
Elemento necesario en las clases.

Es la forma de crear una instancia de la clase.

Debe tener el mismo nombre de la clase

Perro miMascota = new Perro(4, “Firualis”, “Blanco);


Creación de clases
Clase public class Perro {
public int edad;
public String nombre;
public String color;
Creación de una nueva
clase de tipo pública. public Perro(int edad, String nombre, String color) {
this.edad = edad;
this.nombre = nombre;
this.color = color;
}

public void ladrar() {


System.out.println("Guau guau");
}
}
Creación de clases
public class Perro {
public int edad;
Atributos
public String nombre;
public String color;
Creación de todos los
atributos sin valores public Perro(int edad, String nombre, String color) {
iniciales. this.edad = edad;
this.nombre = nombre;
Pueden ser públicos o
this.color = color;
privados según se necesite.
}

public void ladrar() {


System.out.println("Guau guau");
}
}
Creación de clases
public class Perro {
public int edad;
Constructor
public String nombre;
public String color;
Para crear un objeto Perro
es necesario tener la edad, public Perro(int edad, String nombre, String color) {
el nombre y el color. this.edad = edad;
this.nombre = nombre;
this.color = color;
}

public void ladrar() {


System.out.println("Guau guau");
}
}
Creación de clases
public class Perro {
public int edad;
this
public String nombre;
public String color;
La palabra reservada “this”
apunta a las variables public Perro(int edad, String nombre, String color) {
definidas de la clase. this.edad = edad;
this.nombre = nombre;
this.color = color;
}

public void ladrar() {


System.out.println("Guau guau");
}
}
Creación de clases
public class Perro {
public int edad;
Entradas
public String nombre;
public String color;
Las variables sin el “this”, se
refieren a las entradas del public Perro(int edad, String nombre, String color) {
constructor. this.edad = edad;
this.nombre = nombre;
this.color = color;
}

public void ladrar() {


System.out.println("Guau guau");
}
}
Creación de clases
public class Perro {
public int edad;
Constructor
public String nombre;
public String color;
Así se utiliza el
constructor. public Perro(int edad, String nombre, String color) {
this.edad = edad;
this.nombre = nombre;
Perro miMascota = new Perro(4, “Firualis”, “Blanco);
this.color = color;
}

public void ladrar() {


System.out.println("Guau guau");
}
}
Creación de clases
public class Perro {
public int edad;
Métodos
public String nombre;
public String color;
Los métodos están incluidos
en cada instancia de la public Perro(int edad, String nombre, String color) {
clase. this.edad = edad;
this.nombre = nombre;
this.color = color;
}

public void ladrar() {


System.out.println("Guau guau");
}
}
Creación de clases
public class Perro {
public int edad;
Métodos
public String nombre;
public String color;
Así se utilizan los métodos.
public Perro(int edad, String nombre, String color) {
this.edad = edad;
this.nombre = nombre;
miMascota.ladrar();
}
this.color = color;

public void ladrar() {


System.out.println("Guau guau");
}
}
Objetos
Objetos
Instancia de una clase.

Se crea de manera similar a una variable de tipo primitiva.

Clase Identificador Constructor

Perro x = new Perro(“firulais”);


Objetos - atributos
Los atributos se generan cuando se crea la instancia.

Los valores dependen del constructor usado.

Tipo de dato Identificador Instancia Atributo

String nombre = x.nombre;


Objetos - métodos
Los atributos se generan cuando se crea la instancia.

Los valores dependen del constructor usado.

Instancia Método Parametros

x.comer(“carne”);
Múltiples objetos
Se pueden crear muchas instancias de una clase.

Cada instancia tiene atributos independientes.

Asumamos el constructor Perro( int edad, String nombre, String mejorAmigo)

Perro x = new Perro(3, “firulais”, null);


Perro y = new Perro(4, “Zeus”, “Milo”);
Perro z = new Perro(2, “Milo”, “Zeus”);
Múltiples objetos - atributos

System.out.println(x.nombre);
Salida: Firulais
System.out.println(y.edad);
Salida: 4
System.out.println(z.mejorAmigo);
Salida: Zeus
Múltiples objetos - métodos
Se pueden crear métodos para interactuar entre instancias.

Un ejemplo de un método de la clase Perro.

Cuando un perro conoce a otro, se convierte en su mejor amigo.

public class Perro {


...
public void conocer(Perro amigo) {
this.mejorAmigo = amigo.nombre;
}
}
Múltiples objetos - métodos
Perro x = new Perro(3, “firulais”, null);
Perro y = new Perro(4, “Zeus”, “Milo”);
Perro z = new Perro(2, “Milo”, “Zeus”);
System.out.println(x.mejorAmigo);
Salida: Null
x.conocer(y);
System.out.println(x.mejorAmigo);
Salida: Zeus
Superclases
Superclases

Imágenes tomadas de:


https://www.google.com/url?sa=i&url=https%3A%2F%2Freinoanimalia.fandom.com%2Fes%2Fwiki%2FTigre&psig=AOvVaw1w4oK
BY2nOrCGj6NoBGnhc&ust=1621989708469000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPDt-
5PN4_ACFQAAAAAdAAAAABAD
https://www.google.com/url?sa=i&url=https%3A%2F%2Fpixabay.com%2Fphotos%2Fcat-baby-baby-cat-kitten-cat-cute-
4201051%2F&psig=AOvVaw3TTJXsc1mnRQ5WAekSSCnn&ust=1621989209405000&source=images&cd=vfe&ved=0CAIQjRxqFwoT
CKjT_7nL4_ACFQAAAAAdAAAAABAJ
https://www.google.com/url?sa=i&url=https%3A%2F%2Fes.123rf.com%2Fphoto_145380758_cat-baby-tabby-kitten-cute-beautifu-
on-white-
background.html&psig=AOvVaw3TTJXsc1mnRQ5WAekSSCnn&ust=1621989209405000&source=images&cd=vfe&ved=0CAIQjRxqF
woTCKjT_7nL4_ACFQAAAAAdAAAAABAP
https://www.google.com/url?sa=i&url=https%3A%2F%2Fes-la.facebook.com%2FSausageDogCentral%2Fposts%2Fbaby-sausage-
dog-in-a-sweater-%25EF%25B8%258Fprotect-your-doxies-back-
httpbitlyoriginaldachshu%2F10157723272032562%2F&psig=AOvVaw1GW8G1bTgkGiu9CQHeQLqH&ust=1621989497847000&sour
ce=images&cd=vfe&ved=0CAIQjRxqFwoTCJjEtvTL4_ACFQAAAAAdAAAAABAD
Superclases
Transporte

Mar Aire Nieve Tierra

DentroAtmosfera FueraAtmosfera 1-Persona n-Personas


Encapsulamiento
Encapsulamiento

La clase es el espacio donde se


empaquetan atributos y métodos
Encapsulamiento

class Circulo {
// campos
private double radio = 5;
private String color;
private static int numeroCirculos = 0;
public static final double PI = 3.1416;
// métodos
// constructores
// main( )
}
Encapsulamiento

Nivel de acceso para miembros de clases (campos, métodos, y clases anidadas)


• Public: miembro es accesible en cualquier lugar en que la clase sea
accesible
• Protected: miembro es accesible por subclases y clases del mismo package
• Package (default): miembro es accesible por clases del mismo package
• Private: miembro es accesible sólo al interior de la clase
Nivel de acceso para clases e interfaces:
• Public: clase/interfaz es accesible globalmente
• Package (default): clase/interfaz es accesible por clases del mismo
package
Ejercicios
Ejercicios
Suponga que tiene encargado crear un programa que maneje la información
de un colegio. Identifique las principales entidades (al menos 5) y defina los
atributos y comportamientos que deberían tener. En esta etapa no se
preocupe por la implementación en java, únicamente por el proceso de
modelamiento

Construya una jerarquía de clases para un zoológico. Identifique la superclase y


construya tantos niveles como considere necesario. En esta etapa no se
preocupe por la implementación en java, únicamente por el proceso de
modelamiento
Referencias

[1] Sierra, K., & Bates, B. (2013). Head first java. " O'Reilly Media, Inc.".
[2] Martin, R. C. (2009). Clean code: a handbook of agile software craftsmanship. Pearson Education.
(Chap 1, 2)
[3] Sommerville, I. (2016). Software Engineering GE. Pearson Australia Pty Limited. (Chap 6, 6.3)
[4] Coronel, C., Morris, S., & Rob, P. (2011). Bases de datos: diseño, implementación y administración.
Cengage Learning Editores. (Chap 1)
[5] Seidl, M., Scholz, M., Huemer, C., & Kappel, G. (2015). UML@ classroom: An introduction to
object-oriented modeling. Springer. (Chap 1, 4)

You might also like