Capitulo 10
Capitulo 10
Programación Orientada a Objetos
Usando el Diagrama de Clases
ObjetObjetoo Los objetos son sujetos o cosas que
encontramos en el dominio del problema de nuestra realidad.
Como están formado los Objetos
Datos: Atributos que describe su forma o apariencia.
Métodos: Manipulan los datos para hacer la entrada, proceso y salida de los mismos
Como Identificar Los Como Identificar Los ObjetosObjetosSe buscan los sustantivos presentes en la especificación; los sustantivos son los objetos
Determinar Las ClasesLos objetos identificados se convierten en clases
Representación de una clase y sus instancias
Estudiante
objetoEstudiante
NombreRoberto
Teléfono093538493
Cédula1102030405
CiudadLoja
objetoEstudiante
NombreLuis
Teléfono092939458
Cédula0702293994
CiudadLoja
- - - - - - -
objetoEstudiante
NombreMaría
Teléfono086222300
Cédula1100293887
CiudadCatamayo
EncapsulaciónEncapsulación
Es colocar juntos los datos y los métodos dentro de un objeto, cuando el código y los datos son entidades separadas, siempre existe el peligro de llamar el método correcto pero con los datos erróneos o viceversa
Diseño Del Diagrama De Diseño Del Diagrama De ClasesClasesUna vez que se tienen definidos los datos y los métodos necesarios, se procede a diseñar la estructura de clases
NombreClase
- dato 1- dato 2- dato 3-datoN
-Metodo1()-Metodo2()-Metodo3()-MetodoN()
Indica el nombre de la clase.
Son los datos que representarán a cada uno de los objetos de la clase.
Son lo método que establecerán y obtendrán los valores de los datos de cada uno de los objetos de esta clase.
Modificadores De AccesoModificadores De Acceso
Con los símbolos -+#_* se indica la visibilidad que tendrá cada dato o método, a estos se les conoce como modificadores de acceso:Privado(-)Protegido(#)Público(+)Estático(_)Abstracto(*)
Visibilidad de los datosVisibilidad de los datos
- Privado(Private)Solo pueden ser vistos y
utilizados por métodos de la misma clase.
# Protegido(Protected)Pueden ser vistos y utilizados
por métodos de la misma clase y por métodos de subclases de la clase donde están declarados.
+ Público(Public)Pueden ser visto y utilizados
tanto por métodos de la misma clase, como por métodos de otras clase.
_ Estático(Static)Pueden ser vistos y utilizados
por todas las instancias de la clase.
Visibilidad de los métodosVisibilidad de los métodos- Privado(Private)Solo pueden ser vistos y utilizados por métodos de la misma clase. # Protegido(Protected)Pueden ser vistos y utilizados por métodos de la misma clase y por métodos de subclases derivadas de la clase donde están declarados.
+ Público(Public)Pueden ser visto y utilizados
tanto por métodos de la misma clase, como por métodos de otras clase._ Estático(Static)
Pueden ser vistos y utilizados por métodos de todas las instancias de la clase.* Abstracto(Abstract)
No tienen implementación; por tanto, deben ser implementados en subclase.
Ejemplo
ClaseEjemplo
- dato1+ dato2# dato3_ dato4
- Metodo1()+Metodo2()#Metodo3()_Metodo4()* Metodo5()
Capitulo 11
Capitulo 11
Programación Orientada a Objetos aplicando la
estructura de secuenciación
Para diseñar un programa o algoritmo Para diseñar un programa o algoritmo orientado a objetos se hacen dos cosas: orientado a objetos se hacen dos cosas:
Primero.- Se diseña el diagrama de clases siguiendo los pasos indicados en el capítulo anterior.Empleado5
nombreEmphorasTrabcuotaHoraSueldo
establecerNombreEmp()establecerHorasTrab()establecerCuotaHora()calcularSueldo()
obtenerNombreEmpleado()obtenerSueldo()
EjecutaEmpleado5
Segundo.- Segundo.- Se diseña la lógica de cada Se diseña la lógica de cada una de las clases utilizando la técnica una de las clases utilizando la técnica pseudocódigo.pseudocódigo.
Algoritmo Sueldo de un empleado
Clase Empleado5
1.Declaraciones
Datos
nombreEmp: Cadena
horasTrab: Entero
cuotaHora: Real
sueldo: Real
2. Metodo establecerNombreEmp(nom: cadena)
a. nombreEmp = nom
b. Fin Método establecerNombreEmp
3. Método establecerHorasTrab(horasTr: entero)
a. horasTrab = horasTr
b. fin Método establecerHorasTrab
4.4. Método establecerCuotaHora(cuotaHr: Real)Método establecerCuotaHora(cuotaHr: Real)a. cuotaHora = cuotaHra. cuotaHora = cuotaHrb. fin Método establecerCuotaHorab. fin Método establecerCuotaHora
5. 5. Método calcularSueldo()Método calcularSueldo()a. sueldo = horasTrab * cuotaHoraa. sueldo = horasTrab * cuotaHorab. fin Método calcularSueldo b. fin Método calcularSueldo
6. 6. Método obtenerNombreEmp(): CadenaMétodo obtenerNombreEmp(): Cadenaa. Return nombreEmpa. Return nombreEmpb. fin Método obtenerNombreEmp b. fin Método obtenerNombreEmp
7.7. Método obtenerSueldo() : RealMétodo obtenerSueldo() : Reala. Return sueldoa. Return sueldob. fin Método obtenerSueldo b. fin Método obtenerSueldo
fin clase Empleado5fin clase Empleado5
Clase EjecutarEmpleado5Clase EjecutarEmpleado51. Método principal11. Método principal1
a. Declaracionesa. Declaraciones Variables Variables
nomEmp: nomEmp: CadenaCadenahrsTra: hrsTra: enteroenterocuoTra:cuoTra: RealReal
b. Declarar, crear e iniciar objetosb. Declarar, crear e iniciar objetos Empleado5 objEmpleado = new Empeado5() Empleado5 objEmpleado = new Empeado5()
c. Solicitar Nombre, número de horas trabajadas y cuotas por c. Solicitar Nombre, número de horas trabajadas y cuotas por horahora
d. Leer nomEmp, hrsTra, cuohrd. Leer nomEmp, hrsTra, cuohre. Establecer objEmpleado.establecerNombreEmp(nomEmp)e. Establecer objEmpleado.establecerNombreEmp(nomEmp)
objEmpleado.establecerHorasTrab(hrsTra) objEmpleado.establecerHorasTrab(hrsTra) objEmpleado.establecerCuotaHora(cuoHr) objEmpleado.establecerCuotaHora(cuoHr)
f. Calcular objEmpleado.calcularSueldo()f. Calcular objEmpleado.calcularSueldo()g. Imprimir objEmpleado.obtenerNombreEmp()g. Imprimir objEmpleado.obtenerNombreEmp()
objEmpleado.obtenerSueldo() objEmpleado.obtenerSueldo()h. Fin Método principalh. Fin Método principal
fin Clase EjecutaEmpleado5 fin Clase EjecutaEmpleado5finfin
arEEEEnombreEmp
horasTrab
cuotaHora
sueldo
establecerNombreEmp()
establecerHorasTrab()
establecerCuotaHora()
calcularSueldo()
obtenerNombreEmp()
obtenerSueldo()
arEEEEobjEmpleado
Capitulo 12
Capitulo 12
Programación Orientada AObjetos Aplicando Las
Estructuras De Selección
Diseño de algoritmos OO Diseño de algoritmos OO usando la selección doble(IF-usando la selección doble(IF-THEN ELSE)THEN ELSE)
Empleado
nombreEmphorasTrabcuotaHorasueldo
establecerNombreEmp()establecerHorasTrab()establecerCuotaHora()calcularSueldo()obtenerNombreEmo()obtenerSueldo()
EjecutaEmpleado
Algoritmo CALCULAR SUELDO DOBLE DE UN EMPLEADOClase Empleado
1. DeclaracionesDatos
nombreEmp: CadenahorasTrab: EnterocuotaHora: Realsueldo: Real
2. Método establecerNombre(nom: Cadena)a. nombreEmp = nomb. Fin Método establecerNombre
3. Método establecerHorasTrab(horasTr: Entero)a. horasTrab=horasTrb. Fin Método establecerHorasTrab
4. Método establecerCuotaHora(cuotaHr: Real)
a. cuotaHora = cuotaHrb. Fin Método establecerCuotaHora
5. Método calcularSueldo()a. IF horasTrab <=40 THEN
1. sueldo = horasTrab * cuotaHorab. ELSE
1. sueldo = (40*cuotaHora)+ ((horasTrab-
40)*(cuotaHora*2))c. ENDIFd. Fin Método calcularSueldo
6. Método obtenerNombreEmp(): Cadenaa. return nombreEmpb. Fin Método obtenerNombreEmp
7. Método obtenerSueldo(): Reala. return sueldob. Fin Método obtenerSueldo
Fin Clase Empleado
Clase ejecutaEmpleado1. Método Principal
a. DeclaracionesVariables
nomEmp: CadenahrsTrab: EnterocuoHr: Real
b. Declarar, crear e iniciar objetoEmpleado objEmpleado = new Empleado()
c. Solicitar Nombre, numero de horas trabajadas y cuota por hora
d. Leer nomEmp, hrsTra, couHre. Establecer
objEmpleado.establecerNomreEmp(nomEmp)
objEmpleado.establecerHorasTrab(hrsTra) objEmpleado.establecerCuotaHora(cuoHr)
f. Calcular objEmpleado.calcularSueldo()g. Imprimir objEmpleado.obtenerNombreEmp()
objEmpleado.obtenerSueldo()h. Fin Método Principal
Fin Clase ejecutaEmpleadoFIn
Diseño de algoritmos OO Diseño de algoritmos OO usando la selección usando la selección múltiple(SWITCH)múltiple(SWITCH)
DiceDia
numDianombreDia
establecerNumDia()calcularNombreDia()obtenerNombreDia()
EjecutaDiceDia
Algoritmo DICE DIA
Clase DiceDia
1. Declaraciones
Datos
numDia: Entero
nombreDia: Cadena
2. Método establecerNumDia(num: Entero)
a. numDia = num
b. Fin Método establecerNumDia
3. Método calcularNombreDia()
a. SWITCH numDia
1. nombreDia= “LUNES”
2. nombreDia= “MARTES”
3. nombreDia=“MIERCOLES”
4. nombreDia=“JUEVES”
5. nombreDia=“VIERNES”
6. nombreDia=“SABADO”
7. nombreDia=“DOMINGO”
b. DEFAULT
1. nombreDia=“NO ESTA EN EL RANGO 1 A 7”
c. ENDSWITCH
d. Fin Método calcularNombreDia
4. Método obtenerNombreDia(): Cadenaa. Return nombreDiab. Fin Método obtenerNombreDia
Fin Clase DiaDice1. Medodo Principal
a. DeclaracionesVariables
nDia: Enterob. Declarar, crear e iniciar objeto
DiceDia objDia = new DiceDia()c. Solicitar Número de díad. Leer nDiae. Establecer objDia.establecerNumDia(nDia)
f. Calcular objDia.CalcularNombreDia()g. Imprimir objDia.obtenerNombreDia()h. Fin Método Principal
Fin Clase ejecutaDiceDiaFIn
Top Related