Programación Orientada a Objetos Conceptos Básicos de Objetos en Java Ing Ing.. Julio Ernesto Carreño Vargas MsC. MsC. Forma básica de una clase en Java Forma Básica Clase Java Especifica que la clase forma parte del paquete “conceptos” import permite “reusar” clases de otros paquetes. Sección de atributos visibles en toda la clase Sección de métodos Programación Orientada a Objetos 3 Paquetes Los paquetes son una forma de organizar grupos de clases. Un paquete contiene un conjunto de clases relacionadas por finalidad ó funcionalidad funcionalidad.. Los paquetes resuelven el problema del conflicto entre los nombres de las clases. Al crecer el número de clases crece la probabilidad de designar con el mismo nombre a dos clases diferentes. diferentes. La siguiente declaración indica que la clase va a pertenecer a un paquete llamado ventas Programación Orientada a Objetos 4 Importar clases La palabra reservada import permite utilizar clases de otro paquete Lo anterior no implica copiar el código de la clase importada a la clase importadora En los lenguajes POO se debe informar la ubicación de los paquetes que se quieren importar: classpath Programación Orientada a Objetos 5 Clase Pública El archivo en el disco se debe llamar “Orden.java” Puede ser utilizada por cualquier otra clase (mediante el import) Programación Orientada a Objetos 6 Clase no pública Si no aparece ningun modificador de visibilidad, la clase sólo es visible para clases del mismo paquete (visibilidad package) Programación Orientada a Objetos 7 Forma básica de los atributos en Java Programación Orientada a Objetos 8 Forma Básica de Atributos Comentario del atributo para ser usado con javadoc Visibilidad •private •public •protected •package Tipo •String •int •double •float •boolean •… Programación Orientada a Objetos Nombre dado a la variable 9 Modificadores de visibilidad para atributos Ejemplo : protected String nombre; Jerarquía de visibilidad de modificadores de atributos: public : atributo visible para cualquier clase (puede accederse directamente sin necesidad de método) método) protected :atributo visible para : subclases clases del mismo paquete package : modificador por defecto atributo visible para clases del mismo paquete private : atributo no visible para las demás clases Programación Orientada a Objetos 10 10 Propiedades this this: Es una referencia al objeto (instancia de la clase) actual. Programación Orientada a Objetos 11 Forma básica de los métodos en Java Programación Orientada a Objetos 12 Tipos de Métodos Existen varias clases especiales de métodos: Constructores: método para crear un nuevo objeto de la clase. Destructores: método para eliminar un objeto de una clase (no hay en Java) Modificadores: métodos para asignar el valor de un atributo Analizadores: métodos para recuperar el valor de un atributo. Programación Orientada a Objetos 13 Modificador de Visibilidad •private •public •protected •package Forma Básica Métodos Tipo de retorno •void (no retorna valor) •String •int •double… Nombre del método Lista de parámetros Cuerpo del método, incluido variables locales y un return al final si retorna un valor ó sin return si el retorno es void Programación Orientada a Objetos 14 Modificadores de visibilidad para métodos Ejemplo : public String getNombre(); Jerarquía de visibilidad de modificadores de métodos: public : método visible para cualquier clase protected :método visible para : subclases clases del mismo paquete package : modificador por defecto método visible para clases del mismo paquete private :método no visible para las demás clases Programación Orientada a Objetos Tema 15 3 Java - CincoSOFT 15 Métodos Analizadores(accesors Analizadores(accesors)) Por cada atributo de la clase existe un método get que retorna el valor de dicho atributo Programación Orientada a Objetos 16 Métodos Modificadores(mutators Modificadores(mutators)) Por cada atributo de la clase existe un método set que asigna un valor a dicho atributo Programación Orientada a Objetos 17 Encapsulamiento de Atributos Observe que el atributo TotalDinero es privado Para acceder al atributo se hace a través de los métodos getXXX y setXXX Programación Orientada a Objetos 18 Método Constructor(1) Un constructor es un método especial que es ejecutado cuando una nueva instancia de una clase es creada Modificador de Visibilidad Nombre de la clase Lista de parámetros Cuerpo del constructor, inicializando los atributos de la clase Programación Orientada a Objetos 19 Método Constructor(2) Permiten inicializar los atributos de los objetos. Un objeto puede tener uno o más constructores. Todos los constructores tienen el mismo nombre de la clase y se distinguen por la lista de parámetros. Programación Orientada a Objetos 20 Método Constructor(3) En caso de no especificar ningún constructor, java provee uno vacío y sin parámetros. Programación Orientada a Objetos 21 Ciclo de vida de los objetos en Java Programación Orientada a Objetos 22 Declarando Objetos Los objetos se declaran de igual manera como se declara cualquier otra variable. Clase Nombre del objeto miPC Programación Orientada a Objetos 23 Creando objetos (2) 1. Se declara una instancia (objeto) 2. Se usa la palabra reservada new para crear el objeto (instancia) 3. Se invoca un constructor de la clase, pasando los argumentos necesarios Sistema.java 1.Declarar el objeto 2. Creación del objeto (new) 3. Invocación del constructor: Programación Orientada a Objetos observe los argumentos pasados al constructor 24 de la clase PC Creando objetos (3) Los argumentos son asignados a los parámetros antes de ejecutar un método Sistema.java parametros PC.java Programación Orientada a Objetos 25 Creando objetos(4) Construcción de objetos e invocación de métodos modificadores Bicycle bike1, bike2; bike1 = new Bicycle( ); bike1.setOwnerName("Adam Smith"); bike2 = new Bicycle( ); bike2.setOwnerName("Ben Jones"); Programación Orientada a Objetos 26 Asignando Objetos a variables 2 objetos instanciados, una sola variable Customer customer; customer customer = new Customer( ); Customer Customer customer = new Customer( ); Programación Orientada a Objetos 27 Dos referencias a un solo objeto 1 solo objeto instanciado, 2 variables Customer clemens, twain, clemens = new Customer( ); clemens twain twain = clemens; Programación Orientada a Objetos Customer 28 Ejemplo de Visibilidad … Service obj = new Service(); class Service { public int memberOne; private int memberTwo; public void doOne() { obj.memberOne = 10; … obj.memberTwo = 20; } private void doTwo() { obj.doOne(); … } obj.doTwo(); } … Client Programación Orientada a Objetos Service 29 Creando una clase de prueba Por lo general existe una clase “Cliente” ó clase que usa otra clase, desde allí se crea el objeto, en este ejemplo es la clase Sistema Sistema.java PC.java Sistema.java Programación Orientada a Objetos 30 Invocando un método Sistema.java PC.java Se usa la notación punto: objeto.metodo(argumentos) Programación Orientada a Objetos 31 Objetos –DestrucciónDestrucciónJava cuenta con un recolector automático de objetos no utilizados, recolector de basura (garbage collector) durante la ejecución del programa recorre periódicamente la memoria buscando y eliminando los objetos sin ninguna referencia válida. Programación Orientada a Objetos 32 Bibliografía UML y patrones una introducción al análisis y diseño orientado a objetos y al proceso unificado. Larman, Craig Paul Deitel. Como programar en Java 7/e. Pearson Education. 2007. Programación Orientada a Objetos 33