Documente Academic
Documente Profesional
Documente Cultură
Módulo I
Unidad 1
Clases y Objetos
Módulo I
Unidad 3
Unidad 2
Unidad 1 Framework y
Objetos y Clases -
Objetos y Clases Manejo de
Relaciones
Excepciones
o Concepto de clase.
o Definición e implementación de una clase
o Campos y Constantes
o Propiedades. Concepto de Getter() y Setter(). Propiedades de
solo lectura. Propiedades de solo escritura. Propiedades de
lectura-escritura. Propiedades con indizadores. Propiedades
autoimplementadas. Propiedades de acceso diferenciado.
o Métodos. Métodos sin parámetros. Métodos con parámetros
por valor. Métodos con parámetros por referencia. Valores de
retorno de referencia.
o Sobrecarga de métodos.
o Constructores. Constructores predeterminados. Constructo-
res con argumentos.
o Finalizadores.
o Clases anidadas.
Lectura requerida
Lectura requerida
Lectura requerida
4. Clasificación (Teoría)
Lectura requerida
Lectura requerida
6. Constructores y Destructores
Lectura requerida
7. Sobrecarga
Lectura requerida
Nos solicitan crear un programa que maneje una lista de alumnos. El alumno
estará representado por la clase Alumno.
Detalle de la clase alumno.
Propiedades:
Legajo int lectura/escritura
Nombre string lectura/escritura
Apellido string lectura/escritura
Fecha_Nacimiento date solo escritura
Fecha_Ingreso date solo escritura
Edad int solo lectura
Activo boolean lectura escritura
Cant_Materia_Aprobadas int solo escritura
Métodos:
Constructores:
1. Constructor sin parámetros
2. Constructor con todos los parámetros que permiten inicializar las
propiedades.
Nos solicitan que la GUI (interfaz gráfica del usuario) permita visualizar la lista de
los alumnos ingresados en una lista del tipo DataGridView.
La GUI debe tener botones para:
Agregar un alumno a la lista.
Borrar el alumno seleccionado de la lista.
Modificar el alumno seleccionado de la lista.
La GUI debe tener cajas de texto para ver del alumno seleccionado en la grilla:
Antigüedad
Materias_No_Aprobadas
Edad_De_Ingreso
Cierre de la Unidad
• Guía de TP optativos.
BIBLIOGRAFÍA OBLIGATORIA
Bibliografía Ampliatoria
https://docs.microsoft.com/es-es/dotnet/csharp/
www.omg.org
Organizador Gráfico
En general, los requerimientos solicitan como mínimo que este producto re-
presente significativamente y acompañe, organice y simplifique, los procesos
empresariales en el caso de los sistemas de información y los procesos socia-
les, en el caso de los sistemas de esta naturaleza.
Por supuesto, pueden existir algunos sistemas de software que no son com-
plejos, donde todas las actividades ligadas a él, desde la concepción hasta el
mantenimiento, son efectuadas por una única persona. Generalmente, su ciclo
de vida es limitado, así como los objetivos que persiguen.
Son “PARTE-DE”
“ES-UN”
1. Quitar
la alarma
2. Abrir la
puerta
3. Insertar
la llave
4. Girar la
Llave
5. Inyección de
combustible
Lectura requerida
Lectura requerida
Ahora bien, cabe aclarar que, si bien cada objeto representará un elemento de
la realidad, lo representará por medio de sus atributos y comportamientos
más relevantes.
Abstracción / Clase
AUTO
Característica:
Peso
Color
Potencia
Cantidad de Puertas
…
Comportamiento:
Arrancar
Frenar
Acelerar
…
La respuesta a este interrogante es que las clases pueden ser sometidas a una
acción denominada “Instanciación”. Esta acción da como resultado también
objetos, pero estos objetos son “objetos virtuales” cuya existencia se da
solo en la memoria de la computadora y en tiempo de ejecución, conformando
las estructuras dinámicas que son la esencia de todo programa orientado a
objetos.
3. Luego se establece qué relaciones se dan entre estas clases y las es-
tablece (tema que desarrollaremos más adelante).
AUTOS FACTURAS
(Objetos (Objetos
Reales) Reales)
Relación entre
Auto y Factura:
Auto posee una
• Estado
• Comportamiento
• Identidad
Por lo tanto, dada una clase AUTO donde el conjunto de características que la
definen es: marca, modelo, peso, color, potencia, año de patentamiento y pre-
cio, si tenemos un objeto AUTO producto de haber instanciado a esa clase,
podríamos decir que su estado en un momento M es:
marca: .............................Toyota
modelo: ...........................Corolla
peso: ...............................1200 kg
color: ...............................Gris Oscuro
potencia: ..........................120 HP
año de patentamiento: ......2012
Precio: .............................90.000 pesos
Ese mismo objeto puede cambiar su estado (observar que cambio el precio)
en otro momento M1:
marca: .............................Toyota
modelo: ...........................Corolla
peso: ...............................1200 kg
color: ...............................Gris Oscuro
potencia: ..........................120 HP
año de patentamiento: ......2012
Precio: .............................93.000 pesos
• Enlace
• Agregación
Los objetos colaboran entre sí a través de los enlaces. Para lograr esto los
objetos se envían mensajes. “Un mensaje es los que un objeto O1 le envía a
otro objeto O2 para que O2 realice algo”. La mensajería entre objetos es
típicamente unidireccional, en casos muy peculiares puede ser bidireccional.
OBJETO 3 OBJETO 4
Cuando dos objetos se relacionan por medio del enlace cada uno adopta uno de
los siguientes roles: actor, servidor o agente.
Para que un objeto le pueda enviar un mensaje a otro en una relación de enlace
estos deben estar sincronizados.
MENSAJE MENSAJE
X4 X1
MENSAJE MENSAJE
X5 X2
O1
hilo de ejecución 5 hilo de ejecución 2
MENSAJE MENSAJE
Xn X3
ALA ALA
TREN DE ATERRIZAJE
Decimos que existe “agregación con contención física” cuando los ciclos de
vida del “Todo” y las “Partes” están íntimamente relacionados y no tiene sentido
la existencias de las “Partes” sino existe el “Todo”. En la práctica decir que los
ciclos de vida están íntimamente relacionados, generalmente se manifiesta de
la siguiente forma: el objeto que representa al “Todo”, al ser creado crea los
objetos que representan las “Partes” y al ser eliminado se encarga de eliminar
las “Partes” que creó.
INVERSOR
Momento 1 Momento 2
CLASE
IMPLEMENTACIÓN INTERFAZ
E
A X
T
B
E
C R
I
D O
R
E
N N
CASA DUEÑO
Dueño es propietario de N Casas
Casa posee N Dueños
MAMÍFERO
VEHÍCULO VEHÍCULO
HIDROAVIÓN ANFIBIO
MAMÍFERO
__________________
comer
USA
AUTO MOTOR
• Acoplamiento
• Cohesión
• Suficiencia
• Compleción
• Ser Primitivo
Esto último, considerando que el modelo orientado a objetos prevé los meca-
nismos para incorporar paulatinamente partes estructurales y nuevos compor-
tamientos a medida que sea demandado por el sistema.
Lectura requerida
4. Clasificación
• Categorización clásica
• Agrupamiento conceptual
• Teoría de prototipos
Grady Booch expone como ejemplo cuál sería la propiedad que permitiría
agrupar las canciones de amor. Al intentar ubicarlas nos encontramos en
un problema ya que ni el ritmo, ni la letra necesariamente, son propios
y únicos en las canciones de amor. Entonces propone hacer una
descripción conceptual de las mismas y clasificarlas considerando esta
descripción.
Lectura requerida
Justifique por qué utilizaría esa forma y no otra. Tome la precaución que
los objetos seleccionados sean distintos a los propuestos por la biblio-
grafía…
Cierre de la unidad
Tenga en cuenta que los trabajos que produzca durante los procesos de
estudio son insumos muy valiosos y de preparación para la Evaluaciones
Parciales. Por lo tanto, guarde sus notas, apuntes y gráficos, le serán de
utilidad.
Ej00001
Creación de un objeto.
Ej0002
Ej0003
Ej0004
Modificadores de Acceso.
Propiedades.
Ej0005
Ej0005
Ej0005
Ej0005
Ej0005
Ej0007
Ej0008
Como sus nombres lo indican, estan propiedades sirven solo para ser
leidas o solo para ser escritas. Estas últimas son menos utilizadas que la
primeras pero en el siguiente ejemplo se puede observar como se
implementan.
Ej0009
Indizadores.
Ej0010
Ej0011
Métodos.
Acceso a métodos.
Ej0012
Existen dos tipos de variables, variables del tipo valor y variables del
tipo referencia. Una variable tipo de valor contiene sus datos
directamente, en oposición a la variable tipo de referencia, que contiene
una referencia (la posición en memoria) a sus datos.
Si tenemos una función con parámetros y estos son del tipo valor, al
pasarle valores se realiza un copia de estos tomando como ámbito lo que
defina la función. De esta forma se preserva el valor que contiene la
variable utilizada como argumento o sea lo que se pasó desde fuera de
la función. Esta opera como algo independiente al valor recibido por el
parámetro de la función. Ningún cambio realizado en el parámetro dentro
del método afecta a los datos originales almacenados en la variable
utilizada como argumento.
Ej0013
Ej0013
Ej0014
Ej0015
Ej0016
Ej0017
Clases anidadas.
Una clase anidada es una clase definida dentro de otra clase. Por defecto
la clase anidad tendre un modificador de acceso privado a pesar que se
le puede modificar.
El uso de las clases anidadas entre otras cosas sirve para organizar clases
que en general se crean con el objetivo de darle servicios a quien la
contiene o la naturaleza de su existencia está muy ligada a ella.
Ej0020
Un tipo anidado tiene acceso a todos los miembros que estén accesibles
para el tipo contenedor. Puede tener acceso a los miembros privados y
protegidos del tipo contenedor, incluidos los miembros protegidos
heredados.
Ej0021
6. Constructores y Destructores
Constructores.
Ej0022
Ej0023
Ej0024
Ej0025
Destructores.
Ej0027
Sobrecarga en constructores
Ej0028
Ej0029
Sobrecarga de métodos.
Ej0030
Lectura requerida
1. Enumere y explique los aspectos más relevantes que hacen que un software de
gran magnitud sea complejo.
4. ¿Con qué podemos enfrentar a la complejidad para obtener partes cada vez más
pequeñas y simplificadas del dominio del problema?
10. ¿Cuántos y cuáles son los modelos básicos que se manejan en el diseño
orientado a objetos?
28. ¿Cómo se denomina a las formas en que un objeto puede actuar y/o reaccionar,
constituyendo estas formas la visión externa completa, estática y dinámica de la
abstracción?
30. ¿A qué nos referimos cuando decimos que un concepto central de la idea de
abstracción es el de invariancia?
40. ¿Cuáles son los dos aspectos que hacen importante considerar a la modularidad?
45. ¿Cómo denominamos a los lenguajes que hacen una comprobación de tipos
estricta?
46. ¿Cómo denominamos a los lenguajes que no hacen una comprobación de tipos
estricta?
53. ¿La concurrencia es la propiedad que distingue un objeto activo de uno que no
lo está?
59. ¿Cuáles son las tres cosas que debe tener un objeto?
66. ¿El comportamiento de un objeto se ve afectado por el estado del mismo o bien
que el comportamiento del objeto es función de su estado?
68. Se puede afirmar que el estado de un objeto termina siendo los resultados
acumulados de su comportamiento.
71. ¿Cuáles son las dos operaciones habituales que se utilizan para crear y destruir
instancias de clases?
82. ¿Cuáles son las dos responsabilidades más importantes que posee un objeto?
84. ¿Por qué decimos que los objetos se pueden considerar como máquinas?
86. Dadas dos variable X e Y del mismo tipo ¿qué significa que ambas son iguales?
87. Dadas dos variable X e Y del mismo tipo ¿qué significa asignarle Y a X?
88. Dadas dos variable X e Y del mismo tipo ¿qué significa clonar X en Y?
95. ¿Cómo pueden ser los mensajes entre dos objetos en una relación de enlace?
98. ¿Quién inicia el paso de un mensaje entre dos objetos en una relación de enlace?
99. ¿Cuáles son los roles o papeles que puede desempeñar un objeto en una relación
de enlace?
104. ¿Cuáles son las cuatro formas de visibilidad que puede poseer un objeto servidor
respecto de un objeto cliente?
105. En una relación de enlace de dos objetos, cuando uno le pasa un mensaje al otro,
además de adoptar roles ambos deben
estar:…………………………………………………………………..
107. ¿Qué significa que dados dos objetos A y B estos están secuencialmente
sincronizados?
114. ¿En una relación de agregación las “partes” forman parte del estado del “todo”?
122. ¿Qué relaciones entre clases se desprenden de las tres relaciones básicas?
125. ¿Qué cardinalidad puede existir entre clases relacionadas por asociación?
130. ¿Cómo se denomina a la clase que no se espera tener instancias de ella y solo se
utilizará para heredar a otras clases?
131. ¿Cómo se denomina a la clase que se espera tener instancias de ella y puede
utilizarse para heredar a otras clases o no?
135. ¿Cómo se denomina cuando una clase posee métodos que comparten el nombre
y se diferencias por su firma?
145. ¿Qué métricas hay que observar para determinar la calidad de una abstracción?
160. ¿Cuáles son las cuatro formas fundamentales por las cuales un objeto X puede
hacerse visible a un objeto Y?
Fin de la Unidad 1.
¡Felicitaciones!