Vista previa del material en texto
INTRODUCCIÓN A CONTROL Y APLICACIÓN DE ACCESO A MIEMBROS DE UNA CLASE Contenido Clases ................................................................................................................................................................... 1 Control y aplicación de acceso a miembros ....................................................................................... 2 Acceso público ............................................................................................................................................ 2 Acceso privado ............................................................................................................................................ 2 Acceso protegido ....................................................................................................................................... 2 Ámbito de atributos y métodos ............................................................................................................... 3 Atributos ........................................................................................................................................................ 3 Métodos ......................................................................................................................................................... 4 Declaración de métodos .................................................................................................................... 7 Invocación de métodos ...................................................................................................................... 8 Sobrecarga de métodos .................................................................................................................. 10 Referencia de objetos y miembros ....................................................................................................... 10 Instancia de variables finales .................................................................................................................. 11 Paquetes .......................................................................................................................................................... 12 Composición .................................................................................................................................................. 13 Bibliografía ...................................................................................................................................................... 14 1 Contenidos: • Control y aplicación de acceso a miembros • Ámbito de atributos y métodos • Referencia de objetos y miembros • Instancia de variables finales • Paquetes de acceso • Composición Clases Para efecto de este curso utilizaremos la definición de clase que se plantea en el libro, Java2 Manual de programación, Aguilar & Fernández (2001), Las clases son estructuras o plantillas que sirven para definir un objeto, una clase de un objeto contiene una colección de métodos y definiciones de datos. Una clase describe la constitución de un objeto y sirve como plantilla para construir objetos, especificando la interfaz publica de un objeto. Una clase tiene un nombre y especifica los miembros que pertenecen a la clase, que pueden ser campos (datos) y métodos (procedimientos). Las clases se declaran con el siguiente formato: 2 Control y aplicación de acceso a miembros En el libro, Operación orientada a objetos con C++, Ceballos (2007), menciona: Los accesos a miembros son los que permiten controlar la visibilidad, acceso a los métodos y variables que están dentro de una clase. Java soporta cuatro niveles de acceso a métodos y variables. Estos son público(public), protegido(protected), sin modificador (también conocido como package) y privado (private). Acceso público Un miembro de una clase declarado public (público) puede ser accedido por un objeto de esa clase en cualquier parte de la aplicación donde el objeto en cuestión sea accesible. Los miembros públicos de una clase constituyen la interfaz pública de los objetos de esa clase. Acceso privado Un miembro de una clase declarado private (privado) puede ser accedido por un objeto de esa clase sólo desde los métodos de dicha clase. Acceso protegido Un miembro de una clase declarado protected (protegido) se comporta exactamente igual que uno privado para las funciones externas o para los métodos de cualquier otra clase, pero actúa como un miembro público para los métodos de sus subclases. 3 Visibilidad Public Protected Private Desde la misma clase Si Si Si Desde cualquier clase del mismo paquete Si Si No Desde una subclase del mismo paquete Si Si No Desde una subclase fuera del mismo paquete Si Si, a través de la herencia No Desde cualquier clase fuera del paquete si No No Ámbito de atributos y métodos Atributos En el libro, Fundamentos de programación en Java, Martínez (2011), define: Los atributos como los elementos que almacenan el estado de un objeto se definen de la misma forma que las variables, pero dentro del bloque de la clase. Otra definición de atributos son las propiedades que permiten identificar características propias de una clase (Cardona & Valbuena & Villegas, 2008). Para efecto de este curso definiremos como atributo al conjunto de características de elemento o de una clase. Ejemplo: 4 La clase Carro puede tener atributos como: marca, modelo y precio. En esta declaración, todos los atributos tienen acceso private y solo es posible acceder a ellos desde los métodos de la clase. Métodos En el libro, Fundamentos de programación en Java, Martínez (2011), menciona: Los métodos son funciones que determinan el comportamiento de los objetos. Un objeto se comporta de una u otra forma dependiendo de los métodos de la clase a la que pertenece. Existen tres tipos de método de consulta, métodos modificadores y operaciones. Los métodos de consulta sirven para extraer información de los objetos, los métodos modificadores sirven para modificar el valor de los atributos del objeto y las operaciones definen el comportamiento de un objeto. Los métodos get son métodos de consulta, mientras que los métodos set son métodos modificadores. Nota: Todos los objetos de una misma clase tienen los mismos métodos y el mismo comportamiento. 5 Ejemplo: En la clase vehículo es necesario definir un método get para cada uno de los atributos y los métodos set solo se definen para los atributos que pueden ser modificados después de que se ha creado el objeto. El método getAtributos ( ) es un caso particular de método get que devuelve los valores concatenados de los atributos del objeto. Nota: Un método get se declara public y a continuación se indica el tipo que devuelve. En el cuerpo del método se utiliza return para devolver el valor correspondiente al atributo del objeto, al que se hace referencia a través de this. Nota: Los métodos get se utilizan para extraer el valor de un atributo del objeto y los métodos set para modificarlo. 6 Un método de tipo operación es aquel que realiza un cálculo o modifica el estado de un objeto. En este tipo de métodos pueden incluir una lista de parámetros y puede devolver un valor o no. Si el método no devuelve un valor, se declara void. Nota: Un método set se declara public y devuelve void. La lista de parámetros incluye el tipo y el valor a modificar. El cuerpo de este método asigna al atributo del objeto el parámetro de la declaración. 7 Ejemplo: En este ejemplo, los métodos calcularPerimetro ( ) y calcularArea ( ) devuelven un valor double y ninguno de ellos recibe parámetros.Declaración de métodos La declaración indica si el método necesita o no argumentos. Los métodos get no tienen argumentos y devuelven un valor, los métodos set necesitan un argumento para indicar el valor del atributo que van a modificar. La lista de parámetros se declara con la siguiente sintaxis: Nota: La lista de parámetros puede declarar una o más variables separadas por una coma. Dentro de una clase los métodos se identifican unívocamente por su nombre y su lista de parámetros. 8 Invocación de métodos Un método se puede invocar dentro o fuera de la clase donde se ha declarado. Si el método se invoca dentro de la clase, basta con indicar su nombre. Si el método se invoca fuera de la clase entonces se debe indicar el nombre del objeto y el nombre del método. Si el método es estático entonces es necesario indicar el nombre de la clase y el nombre del método. Ejemplo: Método dentro de la clase 9 Ejemplo: Método fuera de la clase Ejemplo: Método estático 10 Sobrecarga de métodos La sobrecarga de métodos es útil para que el mismo método opere con parámetros de distinto tipo o que un mismo método reciba una lista de parámetros diferente. Esto quiere decir que puede haber dos métodos con el mismo nombre que realicen dos funciones distintas. La diferencia entre los métodos sobrecargados está en su declaración. En este ejemplo los dos métodos se diferencian por la declaración de sus parámetros y ambos métodos realizan operaciones distintas. Referencia de objetos y miembros Para poder conseguir una referencia al objeto actual se puede utilizar this, esta funciona de igual manera dentro de un constructor para llamar a otro constructor. 11 Ejemplo: Instancia de variables finales La palabra clave final indica que a esa variable solo se le puede asignar un valor u objeto una única vez. La sintaxis es la siguiente: Por ejemplo: Nota: Si tratamos de modificar el valor de una variable con el modificador final, el compilador indicará un error. Una vez definido el valor no se puede modificar. 12 Paquetes En el libro, Diseñar y programar, todo es empezar: Una introducción a la programación orientada a objetos usando UML y Java, Vélez, Peña, Gortázar & Sánchez (2011), definen los paquetes como agrupaciones lógicas de código y constituyen el mecanismo que proporciona Java como soporte a la modularidad. Los paquetes se organizan entre ellos en forma de árbol y esta organización repercute en su nombre. Por ejemplo, un paquete podría ser com.urjc.software y otro paquete contenido en éste podría ser com.urjc.software.utilidades. Por otro lado, la pertenencia de un fichero a un paquete se debe declarar en la primera línea de código del fichero mediante la palabra reservada package seguida del nombre del paquete al que pertenece. Es posible acceder a un elemento contenido en un paquete si se antepone el nombre completo del paquete al nombre del elemento (lo que se conoce como nombres completamente calificados). Así, para crear un objeto de la clase Coche contenida en el paquete Utilitarios del paquete Vehículos debemos escribir: También se puede utilizar la palabra reservada import al principio de un fichero para evitar usar nombres completamente calificados. Incluso es posible utilizar el asterisco para especificar que se desea importar todas las clases contenidas dentro de un determinado paquete. 13 También es posible utilizar la combinación import static para invocar los métodos estáticos de una clase sin necesidad de utilizar nombres completamente calificados. Composición En el libro, como programar en Java, Paul & Harvey Deitel (2012), se le conoce como composición cuando una clase puede tener referencias a objetos de otras clases como miembros. Otra definición de composición se considera si una clase posee una propiedad de otra clase y se instancia la clase de dicha propiedad en algún método de la clase, se dice que dicho objeto es parte del objeto contenedor (Bonaparte, 2012). Para efectos de este curso definiremos como composición a la relación de dependencia que existe entre dos objetos para poder llevar a cabo su función. Ejemplo: Representación de Áreas Rectangulares. ¿Y si en un futuro necesitamos un círculo? Solución de Composición 14 Bibliografía Aguilar, L., & Azuela, M. (2001). Java 2, Manual de programación. Madrid: McGraw- Hill. Bonaparte, U. (2012). Proyectos UML diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1. Argentina: edUTecNe. Cardona, S., Sonia, J., & Villegas, M. (2008). Introducción a la programación en Java. Elizcom. Ceballos, F. J. (2007). Programación orientada a objetos con c++. Madrid: RA-MA. Deitel, P., & Harvey, D. (2013). Como programar en Java. México: Pearson. Martínez, J. (2011). Fundamentos de programación en Java. EME. Vélez, J., Alberto, P., Patzi, G., & Sánchez, Á. (2011). Diseñar y programar, todo es empezar: Una introducción a la programación orientada a objetos usando UML y Java. Madrid: DYKINSON. Clases Control y aplicación de acceso a miembros Acceso público Acceso privado Acceso protegido Ámbito de atributos y métodos Atributos Métodos Declaración de métodos Invocación de métodos Sobrecarga de métodos Referencia de objetos y miembros Instancia de variables finales Paquetes Composición Bibliografía