Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Introduccion Conceptos Cuestiones Tareas
Sesion 6. TEMA 8 COMPORTAMIENTOAVANZADO CON OBJETOS
Fundamentos de Informatica
Jose Jaime Noguera Noguera
18 de marzo de 2018
Introduccion Conceptos Cuestiones Tareas
Contenidos
1 Introduccion
2 Conceptos
3 Cuestiones
4 Tareas
Introduccion Conceptos Cuestiones Tareas
Temario
Recordar que en este tema solo hay que estudiar las secciones:5.1, 5.5, 5.11, 5.13 (edicion 5), o bien:6.1, 6.5, 6.12, 6.14 (edicion 6).
Por tanto, este tema es bastante corto. Ademas es recomendableleer la seccion 5.3, ya que introduce herramientas utiles.
Introduccion Conceptos Cuestiones Tareas
Documentacion de las clases
Para acceder a la informacion de la documentacion de las clases delibrerıas, lo podemos hacer desde BlueJ. Para ello, desde el menuAyuda (Help), seleccionar Librerıas de Clase Java (Java Class Libra-ries). Aparecera un explorador web con la documentacion de la API(Application Programming Interface) de Java, siempre que estemosconectados a Internet. Si se desea, tambien se puede utilizar unacopia local de esa documentacion que viene con el CD-ROM dellibro (ver Apendice A).
Introduccion Conceptos Cuestiones Tareas
Documentacion
En la documentacion de la API se nos muestra informacion suficientecomo para utilizar las clases sin conocer su implementacion.Es bueno acostumbrarse a buscar informacion en dicha documenta-cion, ya que incluso las clases mas utilizadas disponen de metodosque no son los que aparecen usualmente en los libros de texto y quenos pueden venir bien para programar alguna funcionalidad.
Introduccion Conceptos Cuestiones Tareas
Implementacion e interfaz
Hay dos conceptos que se deben conocer:Implementacion de una clase Es el codigo fuente de la clase, es
decir el todo el texto que escribimos en Java alprogramar la clase. Este codigo no necesitamosconocerlo para utilizar la clase. Es la parte privadade la clase
Interfaz de una clase Esta formado por las signaturas de losconstructores y metodos, ademas de una serie decomentarios. Constituyen los detalles que se necesitanpara usar la clase. Es la parte publica de la clase.
Introduccion Conceptos Cuestiones Tareas
Signatura
Recuerda que la signatura de un metodo esta formada por (en esteorden):
Un modificador de acceso (public, private...).Un tipo de retorno.El nombre del metodo.La lista de parametros precedidos por su tipo.
La signatura de un constructor es igual pero sin tipo de retorno.
Introduccion Conceptos Cuestiones Tareas
Utilidades
En la seccion 5.3.2 y 5.3.3 (que no entran en el temario) aparecenalgunos metodos para cadenas de caracteres (objetos definidos comoString) que vale la pena conocer:
cadena.toUpperCase(): devuelve la cadena a la que se aplicaen mayusculas.cadena.toLowerCase(): devuelve la cadena a la que se aplicaen minusculas.cadena.trim(): devuelve la cadena a la que se aplica sinespacios en blanco iniciales ni finales.cadena1.equals(cadena2): devuelve True si las cadenas soniguales y False en caso contrario. Debe evitarse compararcadenas con el operador == ya que no siempre funciona.
Introduccion Conceptos Cuestiones Tareas
Utilidades
Es importante saber que toUpperCase, toLowerCase y trim no mo-difican la cadena original, solo devuelven la cadena modificada. Porejemplo:String a=”hola”;String b=a.toUpperCase();System.out.println(”Original: ”+a+”. Con mayusculas: ”+b+”.”);
Produce la salida:Original: hola. Con mayusculas: HOLA.
Introduccion Conceptos Cuestiones Tareas
Importacion de paquetes
Ya se hablo de como importar paquetes con la sentencia import:import paquete.subpaquete.nombreClase;A paquete.subpaquete.nombreClase se le denomina nombrecompleto o nombre cualificado de la clase.Es preferible utilizar nombres cualificados y no cargar todaslas clases de un paquete con *.Hay paquetes que se cargan por defecto, como java.lang (alque pertenece la clase String).
Introduccion Conceptos Cuestiones Tareas
Modificadores de acceso
La siguiente tabla resume desde donde podemos acceder a lo queviene precedido por el modificador de acceso:
Modificador La misma Otra clase del Subclase de Otra clase dede acceso clase mismo paquete otro paquete otro paquete
public sı sı sı sıprotected sı sı sı no(default) sı sı no noprivate sı no no no
Cuadro 1: Modificadores de acceso en Java.
Introduccion Conceptos Cuestiones Tareas
Modificadores de acceso
De la anterior tabla con lo que hay que quedarse fundamentalmentees que si definimos algo como private, sera solo accesible desde lapropia clase, mientras que si lo definimos como public sera visibledesde cualquier sitio. El definir campos y/o metodos como privatepermite el ocultamiento de la informacion. Esto es positivo por variosmotivos:
El mantenimiento de las clases es mas sencillo, ya queaseguramos que cambios en una clase no afecten a otra.Da lugar a un acoplamiento debil.Garantiza una mejor modularizacion.
Introduccion Conceptos Cuestiones Tareas
static
staticLos campos definidos como static se denominan variables de claseo estaticas.
Las variables de clase tienen las peculiaridades:se almacenan en la propia clase y no en el objeto. Estosignifica que hay una sola copia de la variableindependientemente del numero de objetos que hayamosinstanciado.Desde los metodos de cada objeto se puede modificar dichavariable.Son muy utiles cuando queremos que todos los objetos de unaclase compartan una variable comun.
Introduccion Conceptos Cuestiones Tareas
static: ejemplo
Figura 1: Clase PruebaStatic
Introduccion Conceptos Cuestiones Tareas
static
Si creamos 3 objetos, pongamos obj1, obj2 y obj3, en la situacioninicial en todos ellos a=1, b=2. Esto puede verse inspeccionandocada objeto y pulsando en Mostrar campos estaticos.
Si ejecutamos obj1.cambioB(7), entonces el campo bcambiara su valor en el objeto obj1, pero no en el obj2 y obj3.Si ejecutamos obj1.cambioA(6) en valor del campo estatico acambiara y dado que hay una unica copia almacenada en laclase y no en cada objeto, si inspeccionamos el valor de adesde cualquier objeto, el valor sera el mismo, en este caso 6.
Introduccion Conceptos Cuestiones Tareas
final
finalLos campos definidos como final no pueden ser modificados.
Tienen las peculiaridades:Deben inicializarse al definirlos (en caso contrario habra unerror de compilacion).Si se incluye alguna sentencia que modifique su valor nos daraerror de compilacion.Por convenio escribimos todo su nombre en mayusculas.Puede utilizarse en combinacion con static y ası evitamostener que almacenar cada campo final en cada objetoahorrando espacio de almacenamiento.
Introduccion Conceptos Cuestiones Tareas
Pregunta
La interfaz de una clase muestra su implementacion. ¿Verdadero ofalfo?
Introduccion Conceptos Cuestiones Tareas
Respuesta
La interfaz de una clase muestra su implementacion. ¿Verdadero ofalfo?
Falso.
Introduccion Conceptos Cuestiones Tareas
Pregunta
La implementacion nos muestra como funciona la clase y correspon-de a su parte privada. ¿Verdadero o falso?
Introduccion Conceptos Cuestiones Tareas
Respuesta
La implementacion nos muestra como funciona la clase y correspon-de a su parte privada. ¿Verdadero o falso?
Verdadero.
Introduccion Conceptos Cuestiones Tareas
Pregunta
¿La siguiente lınea corresponde a la signatura de un metodo?public getEdad(String dni)
Introduccion Conceptos Cuestiones Tareas
Respuesta
¿La siguiente lınea corresponde a la signatura de un metodo?public getEdad(String dni)
NO, falta indicar el tipo de retorno. En otro caso getEdad serıa elconstructor de la clase getEdad (que deberıa empezar en mayusculapor cuestion de estilo).
Introduccion Conceptos Cuestiones Tareas
Pregunta
¿Existen unicamente dos modificadores de acceso: public y private?
Introduccion Conceptos Cuestiones Tareas
Respuesta
¿Existen unicamente dos modificadores de acceso: public y private?
NO, tambien esta protected y sin modificador (default).
Introduccion Conceptos Cuestiones Tareas
Pregunta
¿El ocultamiento de informacion aumenta el aumenta el acoplamien-to?
Introduccion Conceptos Cuestiones Tareas
Respuesta
¿El ocultamiento de informacion aumenta el aumenta el acoplamien-to?
No, lo disminuye.
Introduccion Conceptos Cuestiones Tareas
Pregunta
Si definimos un campo como static, ya no puede ser modificado.¿Verdadero o falso?
Introduccion Conceptos Cuestiones Tareas
Respuesta
Si definimos un campo como static, ya no puede ser modificado.¿Verdadero o falso?
Falso, sı puede ser modificado.
Introduccion Conceptos Cuestiones Tareas
Pregunta
La siguiente definicion del campo numeroE:
public final double NumeroE=2.72;
nos indica que el campo tomara siempre el valor 2.72
Introduccion Conceptos Cuestiones Tareas
Respuesta
La siguiente definicion del campo numeroE:
public final double NumeroE=2.72;
nos indica que el campo tomara siempre el valor 2.72
Verdadero, ese es la funcion de la palabra reservada final.
Introduccion Conceptos Cuestiones Tareas
Pregunta
Dado el siguiente fragmento de codigo:String a,b;a=”casa”;b=a.toUpperCase();c=a.equals(b);¿Cual es el valor de c?
Introduccion Conceptos Cuestiones Tareas
Respuesta
Dado el siguiente fragmento de codigo:String a,b;boolean c; a=”casa”;b=a.toUpperCase();c=a.equals(b);¿Cual es el valor de c?
El valor de c es False.
Introduccion Conceptos Cuestiones Tareas
Pregunta
La sentencia:
import java.util*;
¿Importa todos las clases del paquete java.util?
Introduccion Conceptos Cuestiones Tareas
Respuesta
La sentencia:
import java.util*;
¿Importa todos las clases del paquete java.util?
No, da un error porque falta un punto antes del *.
Introduccion Conceptos Cuestiones Tareas
Pregunta
Si queremos utilizar la clase String, ¿necesitamos incluir la importa-cion del paquete al que pertenece en nuestro codigo?
Introduccion Conceptos Cuestiones Tareas
Respuesta
Si queremos utilizar la clase String, ¿necesitamos incluir la importa-cion del paquete al que pertenece en nuestro codigo?
No, java.lang se carga por defecto.
Introduccion Conceptos Cuestiones Tareas
Tareas
Realizar el test del Comportamiento avanzado conobjetos en jjnoguera.wordpress.con/uned-deniaLeer los apartados del 8.3 al 8.6 y APENDICE E.