26
Capi tulo 10 Capitulo 10 Programación Orientada a Objetos Usando el Diagrama de Clases

Exposicion Capitulo 10,11,12

Embed Size (px)

DESCRIPTION

exposición de fundamentos de la programación sobre metodos clases.

Citation preview

Page 1: Exposicion Capitulo 10,11,12

Capitulo 10

Capitulo 10

Programación Orientada a Objetos

Usando el Diagrama de Clases

Page 2: Exposicion Capitulo 10,11,12

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

Page 3: Exposicion Capitulo 10,11,12

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

Page 4: Exposicion Capitulo 10,11,12

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

Page 5: Exposicion Capitulo 10,11,12

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

Page 6: Exposicion Capitulo 10,11,12

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.

Page 7: Exposicion Capitulo 10,11,12

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(*)

Page 8: Exposicion Capitulo 10,11,12

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.

Page 9: Exposicion Capitulo 10,11,12

+ 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.

Page 10: Exposicion Capitulo 10,11,12

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.

Page 11: Exposicion Capitulo 10,11,12

+ 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.

Page 12: Exposicion Capitulo 10,11,12

Ejemplo

ClaseEjemplo

- dato1+ dato2# dato3_ dato4

- Metodo1()+Metodo2()#Metodo3()_Metodo4()* Metodo5()

Page 13: Exposicion Capitulo 10,11,12

Capitulo 11

Capitulo 11

Programación Orientada a Objetos aplicando la

estructura de secuenciación

Page 14: Exposicion Capitulo 10,11,12

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

Page 15: Exposicion Capitulo 10,11,12

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

Page 16: Exposicion Capitulo 10,11,12

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

Page 17: Exposicion Capitulo 10,11,12

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

Page 18: Exposicion Capitulo 10,11,12

arEEEEnombreEmp  

horasTrab  

cuotaHora  

sueldo  

establecerNombreEmp()

establecerHorasTrab()

establecerCuotaHora()

calcularSueldo()

obtenerNombreEmp()

obtenerSueldo()

arEEEEobjEmpleado

Page 19: Exposicion Capitulo 10,11,12

Capitulo 12

Capitulo 12

Programación Orientada AObjetos Aplicando Las

Estructuras De Selección

Page 20: Exposicion Capitulo 10,11,12

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

Page 21: Exposicion Capitulo 10,11,12

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

Page 22: Exposicion Capitulo 10,11,12

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

Page 23: Exposicion Capitulo 10,11,12

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

Page 24: Exposicion Capitulo 10,11,12

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

Page 25: Exposicion Capitulo 10,11,12

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

Page 26: Exposicion Capitulo 10,11,12

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