Professional Documents
Culture Documents
OBJETOS
Irma Gallegos Fuenzalida irma.gallegos.dportales@gmail.com
CONTENIDOS
Unidad I: Fundamentos de orientacin a objetos y UML Unidad II: Fundamentos de la programacin en JAVA Unidad III: Aspectos avanzados del lenguaje de programacin JAVA
REFORZAMIENTO
Pseudocdigo: Lenguaje intermedio entre nuestro lenguaje y el lenguaje de programacin. Representa la solucin a un algoritmo de la forma ms detallada posible, y a su vez lo ms parecida posible al lenguaje que posteriormente se utilizar para la codificacin del mismo.
REFORZAMIENTO
Partes de un pseudocdigo
Inicio. Declaracin de variables o constantes Instrucciones. Fin.
REFORZAMIENTO
Declaracin de variables
Tipo_variable variable1, variable2; Ej: entero num1;
Declaracin de constantes
Tipo_constante constante1=valor,constante2=valor; Ej: entero num1=5;
REFORZAMIENTO
Instrucciones
Imprimir en pantalla
imprimir(Lo que se desea informar); Ej: imprimir(Ingrese el primer nmero);
REFORZAMIENTO
Instrucciones
Asignacin de variables
REFORZAMIENTO
Instrucciones
Instrucciones selectivas:
Si (condicin )entonces instrucciones; fin_si Ej: Si (num1>num2)entonces resultado=num1-num2; Fin_si
REFORZAMIENTO
Ejercicio1:
Sumar dos nmeros enteros ledos desde teclados, slo si ambos son mayores a 5, e desplegarlo en pantalla.
REFORZAMIENTO
Inicio entero num1, num2, resultado=0; imprimir (Ingrese el primer nmero); leer num1; imprimir (Ingrese el segundo nmero); leer num2; si(num1>5)entonces si(num2>5)entonces resultado=num1+num2; fin_si fin_si imprimir (El resultado es +resultado); Fin
REFORZAMIENTO
fin_si
Ej: si(num1>num2)entonces imprimir(El primer nmero es mayor);
sino
imprimir(El segundo nmero es mayor); fin_si
REFORZAMIENTO
Ejercicio2:
REFORZAMIENTO
Inicio entero num1; imprimir(Ingrese un nmero); leer(num1); si(num1>0)entonces imprimir(El nmero ingresado en mayor a 0); sino imprimir(El nmero ingresado en menor a 0); fin_si Fin
REFORZAMIENTO
Selectiva mltiple-Casos
Segn (valor) hacer caso valor1: instrucciones; quiebre; caso valor2: instrucciones; quiebre; de_otro_modo: instrucciones; quiebre; Fin_segun;
REFORZAMIENTO
Segn(valor)hacer caso 1: imprimir(Es el primer caso); quiebre; caso 2: imprimir(Es el segundo caso); quiebre; de_otro_modo: imprimir(No es ningn caso);
quiebre;
Fin_segun
REFORZAMIENTO
Ejercicio 3:
REFORZAMIENTO
Inicio entero num1; segn(num1)hacer caso 1: imprimir(Hola alumnos); quiebre; caso 2: imprimir(Hola profesora); quiebre caso3: imprimir(Hola mundo); quiebre; de_otro_modo: imprimir(No saludo); quiebre; fin_segun; Fin
REFORZAMIENTO
Estructuras iterativas
Bucle mientras
Mientras(condicion)hacer instrucciones; Fin_mientras Ej: entero num1=0; mientras(num1<5)hacer num1=num1+1; imprimir(hola); fin_mientras
REFORZAMIENTO
Bucle hacer
hacer instrucciones; mientras(condicion);
Ej: entero num1=0; hacer num1=num1+1; imprimir(hola); mientras(num1<5);
REFORZAMIENTO
Bucle para:
Para (i=0;i<5;i++)hacer instrucciones; Fin_para Para (i=5;i>0;i--)hacer instrucciones; Fin_para
Ej: Para (i=5;i>0;i--)hacer imprimir(hola); Fin_para
REFORZAMIENTO
Cmo
es
en java?
REFORZAMIENTO
Imprimir en pantalla
System.out.println(Hola mundo);
REFORZAMIENTO
REFORZAMIENTO
Selectiva mltiple-casos
switch(opcion){ case 1: instrucciones; break; case 2: instrucciones; break; default: instrucciones; break; }
REFORZAMIENTO
Bucle mientras
While(num1>1){ instrucciones; }
Bucle hacer
do{ instrucciones; }while(num1>1);
Bucle para
for(int i=0;i<5;i++){ instrucciones; }
REFORZAMIENTO
Ejercicios finales
Validar un rut Dividir sin dividir en java Multiplicar sin multiplicar en java
Objetos: Son entidades que tienen un estado(datos, informacin, atributos ), comportamiento (mtodos o mensajes)e identidad(lo que lo diferencia de otros objetos)
Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas. Herencia: Permite la creacin de nuevas clases basadas en clases existentes. Cuando se hereda de una clase existente, se resan mtodos y atributos, y se pueden agregar nuevos atributos y mtodos para cumplir con la situacin nueva. La clase ya existente es llamada superclass, o clase padre. La clase nueva es llamada subclase, o clase hija.
A travs de la herencia se pueden agregar nuevos campos, adems de agregar o sobre montar mtodos. Sobre montar un mtodo es redefinirlo en la case heredada.
Objeto: Instancia de una clase. Entidad provista de un conjunto de atributos (datos) y de comportamiento o funcionalidad (mtodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase. Mtodo: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en las propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema.
Evento: es un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir como evento la reaccin que puede desencadenar un objeto; es decir, la accin que genera.
CARACTERSTICAS DE LA PROGRAMACIN
ORIENTADA A OBJETOS Abstraccin: Sirve para expresar las caractersticas esenciales de un objeto, los cuales distinguen al objeto de los dems. Polimorfismo: Capacidad de los objetos de una clase de responder al mismo evento en funcin de los parmetros utilizados durante su invocacin. Encapsulamiento: Guarda en una cpsula los datos que definen una clase.
CARACTERSTICAS DE LA PROGRAMACIN
ORIENTADA A OBJETOS
Acoplamiento: Un acoplamiento fuerte significa necesitan saber detalles internos entre ellas. Se debe tener un acoplamiento bajo en las clases. Por ejemplo los atributos privados, un bajo acoplamiento permite:
Entender una clase sin leer otras Cambiar una clase sin afectar a otras Mejora la mantenibilidad del cdigo
Cohesin: Si una clase tiene bien definida una funcin dentro del sistema. En cuanto mas enfocado este el propsito de la clase mas alta es la cohesin. Una alta cohesin hace ms fcil:
Entender qu hace una clase o mtodo Usar nombres descriptivos Reutilizar clases o mtodos
CARACTERSTICAS DE LA PROGRAMACIN
ORIENTADA A OBJETOS Asociacin: Agregacin: Composicin : Generalizacin (herencia):
UN POCO DE HISTORIA
El lenguaje UML comenz a gestarse en octubre de 1994, la idea era unificar dos mtodos que haban desarrollado: el mtodo Booch y el OMT (Object Modelling Tool ). El primer borrador apareci en octubre de 1995. Es un lenguaje de modelado que se usa para especificar, visualizar, construir y documentar partes de un sistema de software. Se usa para entender, disear, configurar, mantener y controlar la informacin sobre los sistemas a construir.
UML no es un lenguaje de programacin. Las herramientas pueden ofrecer generadores de cdigo de UML para una gran variedad de lenguaje de programacin, as como construir modelos por ingeniera inversa a partir de programas existentes.
La notacin UML se deriva y unifica las tres metodologas de anlisis y diseos ms extendidas. Metodologa de Grady Booch para la descripcin de conjuntos de objetos y sus relaciones. Tcnica de modelado orientada a objetos de James Rumbaugh . Aproximacin de Ivar Jacobson mediante la metodologa de casos de uso .
UML:
Posee la riqueza suficiente como para crear un modelo del sistema, pudiendo modelar los procesos de negocios, funciones, esquemas de bases de datos, expresiones de lenguajes de programacin, etc. Para ello utiliza varios tipos diferentes de diagramas, por ejemplo, en UML 2.0 hay 13 tipos de diagramas. Estos diagramas se pueden diferenciar en tres categoras:
- Diagramas de estructura: Diagrama de clases Diagrama de componentes Diagrama de objetos Diagrama de estructura compuesta Diagrama de despliegue Diagrama de paquetes -Diagramas de comportamiento: Diagrama de actividades Diagrama de casos de uso Diagrama de estados -Diagramas de interaccin: Diagrama de secuencia Diagrama de comunicacin Diagrama de tiempos Diagrama de vista de interaccin
CASOS DE USO
Describen las relaciones y las dependencias entre un grupo de casos de uso y los actores participantes en el proceso. No estn pensados para representar el diseo y no describe los elementos internos de un sistema. Los diagramas de casos de uso sirven para facilitar la comunicacin con los futuros usuarios del sistema, y con el cliente, y resultan especialmente tiles para determinar las caractersticas necesarias que tendr el sistema. En otras palabras, los diagramas de casos de uso describen qu es lo que debe hacer el sistema, pero no cmo. Los casos de uso deben estar relacionados por lo menos con un actor. Deben ser descritos en un lenguaje formal y en tercera persona.
CASOS DE USO
CASOS DE USO
Los casos de uso pueden tener relaciones con otros casos de uso. Los dos tipos de relaciones ms comunes entre casos de uso son:
<<include>> que especifica una situacin en la que un caso de uso tiene lugar dentro de otro caso de uso. <<extends>> que especifica que en ciertas situaciones, o en algn punto (llamado punto de extensin) un caso de uso ser extendido por otro.
CASOS DE USO
Actor: Un actor es una entidad externa que interacciona con el sistema participando en un caso de uso. Los actores pueden ser gente real (por ejemplo, usuarios del sistema), otros ordenadores o eventos externos. El actor representa un rol Descripcin de casos de uso: Las descripciones de casos de uso son reseas textuales del caso de uso.
Descripcin
Pre-condicin Pos-condicin
2)- Despliega en pantalla el formulario para un nuevo registro de viaje y espera confirmacin del usuario para el almacenamiento de los datos.
3)- Selecciona el camin y la ruta, que requiere este viaje. Digita el resto de los datos del nuevo viaje (tipo carga, fecha de inicio).
4.a)- Valida los datos, guarda los cambios y muestra en pantalla el mensaje Viaje agregado correctamente, hasta que el usuario hace clic en aceptar, volviendo a la pgina principal.
4.b)- No se guard el nuevo viaje, por un error en la conexin a la red, muestra en pantalla Error de conexin, verifique su cable de red o informe al administrador, hasta que el usuario da clic en aceptar, volviendo al paso 2 del curso normal de eventos.
DIAGRAMA DE CLASES
Los diagramas de clases muestran las diferentes clases que componen un sistema y cmo se relacionan unas con otras. Se dice que los diagramas de clases son diagramas estticos porque muestran las clases, junto con sus mtodos y atributos, as como las relaciones estticas entre ellas: qu clases conocen a qu otras clases o qu clases son parte de otras clases, pero no muestran los mtodos mediante los que se invocan entre ellas.
EJEMPLO
Persona -nombre: String -rut: String -edad:int +cumpleanios():void +cambiaNombre(nvoNombre:String):void
DIAGRAMA DE CLASES
- privado + publico # protegido Enumeracin o cardinalidad Mnimo.. Mximo 1..* 0..* 1..1 1..5
EJERCICIO
Una empresa dedicada a el lavado de autos necesita realizar un sistema que registre cada lavado(Fecha, descripcin, valor), los clientes(nombre, direccin, telfono), y los trabajadores encargados. Realice el diagrama de casos de uso y el diagrama de clases de este proyecto.
2- Despliega en pantalla el formulario, esperando que el usuario confirme su envo. 3)- Digita los datos que necesita, presiona el botn guardar 4.a)- Valida los datos, los guarda y muestra en pantalla el mensaje Lavado guardado con xito, hasta que el usuario hace clic en aceptar, volviendo a la pgina principal.
DIAGRAMA DE CLASES
En clases.
public class Persona{ private String nombre; private Date fechaNacimiento; private String rut; public Persona(String n, Date fechaN, String r){ this.nombre=n;
this.edad=fechaN;
this.rut=r; } protected String dameNombre(){
return nombre;
} }
public class Cliente extends Persona{ private Perro perro; private int telefono; private String direccion; public Cliente(String n, Date fechaN, String r, int telefono, String direccion){ super(n,fechaN, r); this.telefono=telefono; this.direccion =direccion; this.perro=null; } public void cambiaDireccion(String nvaDireccion){ this.direccion=nvaDireccion; }
public class Perrera{ private Vector misClientes; private int telefono; private String direccion; public Perrera(int telefono, String direccion){ this.telefono=telefono; this.direccion =direccion; this.misClientes=new Vector(); } public void cambiaDireccion(String nvaDireccion){ this.direccion=nvaDireccion; } public void cambiaTelefono(int nvoTelefono){ this.telefono=nvoTelefono; } public boolean agregaCliente(Cliente c){ if(this.cliente!=null){ this.misClientes.addElement(c); return true; }else{ return false; } } }