Documente Academic
Documente Profesional
Documente Cultură
1
Programación orientada a objetos
Bjarne Stroustrup
2
Profesora
3
Contenido
• Algorítmica
– Diagramas de flujo.
– Estructuras algorítmicas de control.
• Conceptos generales de POO
• Diagramas UML
• Programación en Java
– Programación de clases.
– Listas (ArrayList).
– Herencia y re-escritura de código.
– Polimorfismo.
– Interfaces gráficas, paradigma: vista/controlador.
4
Evaluación
• Asistencia.
• Trabajo en clase.
• Proyecto final (a realizarse en la última sesión de clases).
• Presentación del proyecto final.
5
ALGORÍTMICA
6
Algoritmo
7
Diagramas de flujo
• Componentes:
• Inicio/fin
• Flujo de datos
• Expresión
• Condición
8
Estructuras algorítmicas de control
Selectivas
if-then
if-then-else
switch
9
Estructuras algorítmicas de control
Iterativas
while
do-while
for
for
10
Expresiones
11
Operadores
12
Operadores
• Operadores aritméticos
13
Operadores
• Operadores relacionales
14
Operadores
• Operadores lógicos:
– &&
• and: si ambas expresiones son verdaderas arroja True
– ||
• or: si solo una expresión es verdadera arroja True
– !
• not: invierte la condición de la expresión
15
Operadores
• El operador punto (.) se utiliza para que un objeto acceda a los métodos y
los atributos de dicha clase:
16
Prioridad de operadores
1. paréntesis
2. funciones y operadores unarios
3. * / div mod
4. + -
5. > >= < <=
6. = !=
7. and (&&)
8. or (||)
17
Ejercicios algorítmica
18
CONCEPTOS GENERALES DE
PROGRAMACIÓN ORIENTADA A
OBJETOS (POO)
19
Conceptos generales de POO
20
Conceptos generales de POO
21
Conceptos generales de POO
22
Conceptos generales de POO
23
Conceptos generales de POO
• Accesibilidad:
– Una variable o método public:
• Es accesible desde cualquier lugar donde la misma clase sea accesible.
• Se hereda a las subclases.
• Es utilizado por los programadores que usan la clase.
– Una variable o método private:
• Sólo es accesible desde el interior de la clase que la declara.
• No se hereda.
24
Conceptos generales de POO
• Accesibilidad:
– Una variable o método protected:
• Es accesible por la misma clase, sus subclases y por las clases contenidas
en el mismo paquete.
• Se hereda a las subclases.
• Es utilizado por los programadores que extienden la clase.
25
Conceptos generales de POO
• Accesibilidad:
– Una variable o método por omisión (paquete):
• Se declara sin modificador de acceso.
• Es accesible por la misma clase y por las clases contenidas en el mismo
paquete.
• Se hereda sólo a las subclases contenidas en el mismo paquete.
26
JAVA
27
Cómo escribir una clase que se ejecuta
(con main)
//Inclusión de librerías
/* Nombre programador
* Fecha creación
* Para que sirve la clase
*/
public class NombreClaseEjecutable {
28
Comentarios en Java
29
Inclusión de librerías
30
Variables
31
Sintaxis para declaración de variables
tipo nombreVariable;
32
Tipos primitivos en Java
33
Cómo codificar diagramas de flujo en Java
if (condición) {
instrucciones;
}
if (condición){
instruccionesA;
}
A else{
B
instrccionesB;
}
34
Cómo codificar diagramas de flujo en Java
switch (selector){
case valor1: instrucciones;
break;
case valor2: instrucciones;
break;
default: instrucciones
}
35
Cómo codificar diagramas de flujo en Java
while (condición){
instrucciones;
}
do{
instrucciones;
}while (condición) ;
36
Cómo codificar diagramas de flujo en Java
37
Lectura en Java: clase Scanner
x= objLec.nextInt();
y= objLec.nextDouble();
b= objLec.nextBoolean();
str= objLec.next();
str= objLec.nextLine();
38
Impresión en Java
• Para imprimir:
System.out.print(loQueSeQuiereImprimir);
• Ejemplos:
System.out.print(“Ejemplo de impresión literal”);
System.out.println(“con cambio de línea….”);
System.out.println(“suponiendo que x tiene algún valor =“+x);
39
Eclipse
40
Ejercicios
}
).
41
UNIFIED MODELING LANGUAGE (UML)
42
Diagramas UML
43
Diagramas UML
» Nombre de la clase
» Atributos / propiedades
44
Diagramas UML
45
Diagramas UML
46
Diagramas UML
47
Constructores
48
Métodos setAtributo
49
Funciones getAtributo
50
Funcionalidad mínima requerida en Java
51
Ejercicios
52
TRANSCRIBIENDO DE UML A CÓDIGO
EN JAVA
53
Cómo escribir una clase en Java a partir de
un diagrama UML
//Inclusión de librerías
/* Nombre programador
* Fecha creación
* Para que sirve la clase
*/
public class NombreClase {
//declaración de atributos
//declaración de constructores, constructor nulo
//declaración de métodos set
//declaración de métodos get
//métodos propios de la clase
//funcionalidad mínima requerida de la clase
}
54
Sintaxis de declaraciones en Java
• Variables
– Atributos:
• private/public/protected tipo nombreAtributo;
– Variables locales:
• tipo nombreVariable;
– Parámetros:
• tipo nombreParametro
55
Sintaxis de declaraciones en Java
• Constructores:
public NombreClase(lista parámetros){
//inicialización de atributos con parámetros o ctes.
}
• Métodos:
private/public void nombreMétodo(lista parámetros){
}
• Métodos que arrojan un resultado (funciones)
private/public tipo nombreFunción(lista parámetros){
……
return ____;
}
56
Sintaxis funciones set y get
57
Función
toString():String
• Método cuyo objetivo es generar una cadena de caracteres (String) con la
“información” (atributos) que define a un objeto determinado.
• Ejemplo de toString en la clase Triangulo:
58
Función compareTo(NombreClase):int
if (calculaArea() == otro.calculaArea())
res=0;
else
if (calculaArea()>otro.calculaArea())
res=1;
return res;
}
59
Función
equals(Object):boolean
• Método boolean cuyo objetivo es determinar si dos objetos son iguales o
no lo son.
• El método puede arrojar 2 posibles valores:
– True si los 2 objetos que se comparan son iguales.
– False si los 2 objetos que se comparan son diferentes.
• Ejemplo de equals en la clase Triangulo:
public boolean equals(Triangulo otro){
boolean res;
if (calculaArea() == otro.calculaArea())
res=true;
else
res=false;
return res;
}
60
Ejemplo
61
Diagrama UML de la clase Pentagono
62
Código en Java de la clase Pentagono
Declaración: Instanciación:
NombreClase variableClase = new MétodoConstructor(param);
64
Ejercicios
65
LISTAS
66
Conceptos generales
67
Conceptos generales
contenido
0 1 2 3 4 5 6 índice
68
Sintaxis para declaración de listas en Java
• Inclusión de librerías:
– import java.util.ArrayList;
• Sintaxis para declaración:
– ArrayList<tipo> nomLista = new ArrayList<tipo> ();
69
Métodos y funciones en clase ArrayList
• .add(elemento)
• .add(índice, elemento)
• .isEmpty()
• .indexOf(elemento)
• .contains(elemento)
• .remove(índice)
• .remove(elemento)
• .size()
• .get(índice)
• .clear()
• .expandCapacity()
70
Ejercicios
71
HERENCIA
72
Jerarquía de clases
73
Jerarquía de clases
74
Herencia
• Para que una clase herede de otra, se debe utilizar la palabra reservada
extends al momento de su declaración.
• Una subclase hereda las variables y los métodos de su superclase.
• Una clase extendida puede:
– Adicionar nuevos constructores
– Proporcionar nuevas variables y métodos
– Sobrecargar y redefinir métodos
75
Herencia
76
Re definición de métodos
77
Sobrecarga y redefinición
78
Clases y métodos finales
79
POLIMORFISMO
80
Conversión por ensanchamiento
81
Polimorfismo
82
Polimorfismo
83
Polimorfismo
84
Clases abstractas
85
Interfaces
86
Ejemplo
87
GRAPHICAL USER INTERFACE (GUI)
88
GUIs
• Paradigma:
– Alguien lanza el mensaje
– Alguien esta disponible a escuchar ese mensaje
– Detona el evento
• División de clases: Vista y Controlador
89
Algunos componentes Java GUI
• JFrame
• JPanel
• JLabel
• JTextField
• JTextArea
• JButton
90
Clase VistaX
91
Clase VistaX
92
Ejercicio
• Realizar una clase VistaConversion para dibujar una ventana como la que
se muestra a continuación:
93
Clase ControladorX
94
Clase ControladorX
95
Ejercicios
96
Bibliografía
• http://java.com/es/about/
• http://www.omg.org/technology/documents/modeling_spec_catalog.htm
#UML
• Guardati, S. “Estructuras de datos básicas, Programación orientada a
objetos con Java”, 2015, Alfaomega.
97