La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.

Presentaciones similares


Presentación del tema: ":: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación."— Transcripción de la presentación:

1 :: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación

2 Ejercicio 7 Programación I 1.Iniciar la aplicación BlueJ y abrir el proyecto “Maquina Boletos Simple”. 2.Cree un objeto de tipo MaquinaBoleto y examine sus métodos (Decida el precio del boleto). 3.Invoque el método getPrecio. 4.Inserte dinero en la máquina en montos pequeños hasta completar el valor del boleto. 5.Invoque el método getSaldo y chequee que la máquina mantiene el saldo ingresado por el cliente. 6.Imprima el boleto. 7.Revise el valor retornado por getSaldo.

3 Ejercicio 7 Programación I 8.¿Se puede imprimir el boleto, sin ingresar el valor completo del boleto? 9.Si ingresa un monto mayor al costo del boleto ¿la máquina devuelve la diferencia cuando se imprime el boleto? 10.Cree otro objeto de tipo MaquinaBoleto, ingrese dinero e imprima el ticket ¿El boleto es diferente al de la primera máquina? ¿Cuánto ha recaudado entre las dos máquinas?

4 Ejercicio 7 Programación I 11.Examine el código de la clase MaquinaBoleto y responda lo siguiente: ─¿Cuál es el modificador de acceso de la clase? ─Realiza la lista de atributos. ─¿Tiene constructores? ─Realiza la lista de métodos. ─¿Qué diferencias aprecia entre el constructor y los métodos?

5 Constructores Programación I El constructor es un tipo específico de método que tiene el mismo nombre que la clase y se llama automáticamente cada vez que se crea un objeto de esa clase. Una clase puede tener varios constructores, y su principal uso es la inicialización de los atributos de la clase. Los constructores no tienen valor de retorno (ni siquiera void) y deben ser declarados públicos. Su argumento implícito es el objeto que se está creando.

6 Constructores Programación I Véase el siguiente ejemplo: Utilizando el asistente de Netbeans (versiones anteriores a la 6.0), al crear la clase Rectangulo, Netbeans automáticamente agrega un método que se llama igual que la clase. Éste es un método constructor.

7 Constructores Programación I Aquí se observa como se crea un objeto de tipo Rectangulo y se asigna a una referencia llamada objeto: Rectangulo objeto = new Rectangulo(); new Rectangulo() Puede notarse que, al crear el objeto se coloca a la derecha de new una llamada al constructor visto anteriormente. El compilador se encarga de asignar espacio en memoria a la referencia objeto y luego ejecuta las líneas de código que contenga el constructor Rectangulo().

8 Constructores Programación I Es muy importante resaltar que si el programador no especifica ningún constructor en una clase, el compilador crea un constructor por defecto (que no admite parámetros) e inicializa los atributos de la clase que sean de tipo primitivo a su valor por defecto y las referencias a objetos en null. Un constructor puede tener argumentos (constructores alternativos) ó no tenerlos (constructor por defecto).

9 Constructores Programación I Ejemplo de Constructores:

10 Programación I Constructores Otro Ejemplo de Constructor:

11 Destructores Programación I instancias referencia ¿Qué se hace con estas instancias una vez que ya no son utilizadas? Por lo visto anteriormente, se conoce que las instancias de Objetos se crean a través de una referencia y éstas son almacenadas en memoria RAM. Entonces surge la pregunta: ¿Qué se hace con estas instancias una vez que ya no son utilizadas? destructores instancias, "Garbage Collection" instancias Otros lenguajes como C++ poseen métodos destructores que permiten al programador la administración explícita de instancias, pero en Java no son necesarios debido al proceso de "Garbage Collection" ó recolector de basura; que inspecciona constantemente la memoria utilizada, lo cual le permite ir eliminando automáticamente las instancias que han dejado de ser utilizadas en un programa.

12 Declaración de una Clase Programación I Declaración de atributos Constructores Constructor alternativo Constructor por defecto Método de la clase Método main

13 Creación de Objetos Programación I instancias referencia En Java se crean instancias de objetos de una clase en particular a través de una referencia. Por ejemplo, vamos a crear una instancia de objeto de la clase Rectangulo, usando el constructor por defecto: Rectangulo objeto = new Rectangulo(); Nombre de la Clase Nombre del Objeto Operador new Constructor por defecto objeto x=2 y=4 ancho=3 alto=5 Rectangulo() Rectangulo(int,int,int,int) calcularArea() En memoria se almacena un objeto de la clase Rectangulo con las siguientes características:

14 Creación de Objetos Programación I Ahora vamos a crear una instancia de objeto de la clase Rectangulo, usando el constructor alternativo: Rectangulo objeto = new Rectangulo(4,6,2,3); Nombre de la Clase Nombre del Objeto Operador new Constructor Alternativo objeto x=4 y=6 ancho=2 alto=3 Rectangulo() Rectangulo(int,int,int,int) calcularArea() En memoria se almacena un objeto de la clase Rectangulo con las siguientes características:

15 Creación de Objetos Programación I En el proceso de instanciación de objetos se realizan 3 procesos: 1. Declaración de tipo del objeto: Rectangulo objeto 2. Solicitud de memoria a través de una referencia: = new 3. Inicialización de los atributos de la clase, mediante la llamada del método constructor: Rectangulo()

16 Manipulación de Atributos y Métodos Programación I Como se pudo observar de las declaraciones anteriores, en memoria los objetos creados poseen atributos y métodos, que probablemente en algún momento se necesiten acceder para alguna acción determinada. Para acceder a los atributos ó métodos de un objeto se utiliza el nombre del objeto acompañado del operador punto (.) Rectangulo objeto = new Rectangulo(); int coord_x = objeto.x; int coord_y = objeto.y; System.out.println(objeto.ancho); System.out.println(objeto.alto); int area = objeto.calcularArea();

17 Atributos Programación I Los atributos almacenan información de manera persistente dentro del ámbito del objeto. La forma general para declarar un atributo es la siguiente: Un atributo puede ser de un tipo de dato primitivo o puede ser otro objeto, cuya clase haya sido definida previamente. Un atributo final es aquel que no cambia su valor durante la ejecución del programa. En otras palabras es una constante Un atributo static mantiene un único valor para todos los objetos de la clase, por eso se dice que es un atributo de clase. Ej: System.out Math.PI es un atributo static y final Un atributo static mantiene un único valor para todos los objetos de la clase, por eso se dice que es un atributo de clase. Ej: System.out Math.PI es un atributo static y final Tipo identificador ;

18 Ejercicio 8 Programación I 1.Existe algún atributo de clase en el ejemplo de Máquina de Boletos. ¿Cuál es? 2.¿Cuál es el modificador, tipo y nombre de los siguientes atributos? ─private int contador; ─protected Estudiante representado; ─private Server host; ─public final PI; 3.¿Es necesario que la declaración de un atributo finalice con un “;” 4.¿Cuál es la instrucción para declarar un atributo entero llamado estado?

19 Ejercicio 8 Programación I 5.Cree objetos de tipo MaquinaBoleto e inspeccione los mismos, verificando que hayan sido inicializados de manera correcta. 6.Edite la clase MaquinaBoleto y borre la línea del constructor que contiene el siguiente código “precio = costo” 7.Compile y cree nuevos objetos. ¿Están inicializados correctamente los objetos? Analice. 8.¿A cuál clase pertenece el siguiente constructor? public Estudiante (String nombre)

20 Ejercicio 8 Programación I 9.¿Cuáles son los parámetros y tipos del siguiente constructor? public Libro (String titulo, double precio) 10.Con respecto a la pregunta anterior. ¿Puede indicar los atributos y tipos de la clase Libro?

21 Métodos Programación I La forma general de declarar un método es la siguiente: TipoRetorno identificadorMetodo (lista de parámtros) { //Declaración de variables locales //Lista de instrucciones propias del método } Un método final no puede ser redefinido por clases que hereden de su propia clase Un método static es aquel que puede ser llamado sin necesidad de crear un objeto de la clase. Ejemplo: Math.abs(x) Un método static es aquel que puede ser llamado sin necesidad de crear un objeto de la clase. Ejemplo: Math.abs(x) La lista de parámetros son declaraciones de Objetos separadas por coma. En Java no existe paso de parámetro por dirección, en cambio, tenemos paso de parámetro por referencias constantes. Cuando se llama un método de objeto (no static) el mismo lleva como parámetro implícito la referencia al objeto que recibe el mensaje, de esta forma el método trabaja directamente sobre los atributos del objeto en cuestión

22 Métodos Programación I Son métodos que sirven para acceder a los atributos de un objeto, es decir, retornan el valor de un atributo. Estos métodos tienen la siguiente forma: public tipoAtributo getAtributo () { return atributo; } Ejemplo: public int getEdad() { return edad; } El nombre del método siempre lleva el prefijo “get” seguido del nombre del atributo con la primera letra de este en mayúsculas El tipo de retorno depende del tipo del atributo Métodos getter:

23 Métodos Programación I Son métodos que se utilizan para cambiar el valor de un atributo. El método no retorna valor y en cambio recibe un parámetro de tipo igual al tipo del atributo. La forma es la siguiente: public void setAtributo (tipoAtributo variable) { atributo=variable; } Ejemplo: public void setEdad(int xedad) { edad=xedad; } El nombre del método siempre lleva el prefijo “set” seguido del nombre del atributo con la primera letra de este en mayúsculas El tipo de parámetro depende del tipo del atributo Métodos setter:

24 Ejercicio 9 Programación I Realice lo siguiente con la clase MaquinaBoletos: 1.Compare los métodos getSaldo y getPrecio. ¿Qué diferencias existen? 2.¿Tiene algún método getter? Menciónelos. 3.¿Tiene algún método setter? Menciónelos. 4.Escriba un método getter para el total y pruebe que funcione. 5.Intente eliminar la instrucción de retorno del método getPrecio. ¿Cuál mensaje de error se produce cuando se compila la clase? 6.¿Por qué los métodos imprimirBoleto e insertarDinero no tienen instrucciones de retorno?

25 Ejercicio 9 Programación I 7.Escriba un método setter para el precio y pruebe que funcione. 8.Complete el siguiente método cuyo propósito es sustraer el valor del parámetro al atributo precio. public void descontar (int monto) { …. }

26 Control de Acceso a una clase Programación I Es necesario imponer restricciones a la forma en qué se puede manipular una clase y a la forma en qué se pueden utilizar los datos y código contenidos en la misma. Existen tres tipos de usuarios a la clase: La clase por sí misma. Usuarios genéricos. Clases derivadas. Cada usuario tiene diferentes privilegios de acceso privado (privilegio de acceso por defecto) público protegido

27 Control de Acceso a Atributos y Métodos Programación I public Cualquier clase puede acceder a las propiedades y métodos públicos.protected Sólo las clases derivadas y aquellas situadas o no en el mismo paquete, pueden acceder a las propiedades y métodos protegidos.private Las variables y métodos privados sólo pueden ser accedidos desde dentro de la clase. Cuando al método ó atributo no se le coloca ningún identificador, éstos sólo pueden ser accedidos dentro del paquete en el cual se encuentre la clase, pero no pueden ser visto desde otros paquetes.

28 Control de Acceso a Atributos y Métodos Programación I privatepublic protected package Los métodos y los atributo comparten los mismos modificadores de acceso que pueden ser private, public, protected y package (modificador por defecto). La siguiente tabla resume los modificadores de acceso en Java

29 Programación I Generalmente el esquema de trabajo para una clase, es que sus atributos sean privados y sus métodos públicos. Recordando que si los atributos se encuentran privados, sólo podrán ser accedidos desde dentro (por los métodos o main) de la clase. Mientras que si los métodos son públicos, éstos pueden ser accedidos desde cualquier clase en cualquier paquete. Sólo basta crear una instancia objeto de la clase para poder acceder a ellos con el operador punto (.) Esquema de Trabajo para una Clase

30 Programación I Ejemplo de Acceso a Miembros Privados x, y, ancho, alto, desplazar(int,int) Los atributos y métodos privados de la clase Rectangulo (x, y, ancho, alto, desplazar(int,int) ) pueden ser accedidos desde la misma clase Rectangulo, incluyendo la función main, porque ésta se encuentra dentro de la clase Rectangulo.

31 Programación I Ejemplo de Acceso a Miembros Privados x, y, ancho, alto, desplazar(int,int) Ahora, al tratar de acceder a los atributos ó métodos privados de la clase Rectangulo (x, y, ancho, alto, desplazar(int,int) ) desde otra clase (Principal) el acceso es prohibido. Esto quiere decir que para poder acceder a los atributos hay que construir métodos públicos en la clase Rectangulo.

32 Programación I Ejemplo de Acceso a Miembros Privados setValores Por ejemplo, se construyó el método setValores que es público y recibe los valores que se desean asignar a los atributos privados. desplazar Sin embargo, desde la clase Principal no se puede tener acceso al método desplazar porque éste es privado.

33 Programación I Ejemplo de Acceso a Miembros Públicos Los atributos y métodos públicos de una clase pueden ser accedidos desde la misma clase ó desde cualquier clase. desplazar private public Por ejemplo, cambiemos el acceso del método desplazar de la clase Rectangulo de private a public.

34 Programación I Ejemplo de Acceso a Miembros Privados

35 Programación I Ejemplo de Acceso a Miembros Privados

36 Paso de Mensajes Programación I Ejemplo: Figuras Circulo.java Cuadro.java Otras Rectangulo.java Proyecto

37 La Referencia this Programación I Cómo resolver la ambigüedad entre argumentos y atributos.

38 Programación I Para crear un vector de objetos, primero se hace la declaración de tipo y se específica el tamaño, de la siguiente forma: Luego, por cada posición del vector se debe crear la referencia y hacer la inicialización correspondiente, llamando a un constructor. Vector de Objetos nombre_clasenombre_clase nombre_clase [] nombre_vector = new nombre_clase[tamaño]; for (int i=0; i<nombre_vector.length; i++) nombre_clase(); nombre_vector[i]= new nombre_clase();

39 Programación I Declaración de un Vector de Objetos Ejemplo:

40 Programación I Para manipular los miembros (atributos y métodos) de un vector de objetos, se hace de la siguiente forma: nombre_vector[indice].miembroAtributo nombre_vector[indice].miembroMetodo Vector de Objetos

41 Programación I Manipulación de Miembros de un Vector de Objetos Ejemplo:

42 Ejercicio 10 Programación I 1.Abra el proyecto fractal en BlueJ. 2.Complete la clase Complejo para que la aplicación compile correctamente. 3.Cree un objeto de tipo Ventana e invoque el método mostrar(). El resultado debe ser el siguiente:

43 :: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Finalización


Descargar ppt ":: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación."

Presentaciones similares


Anuncios Google