Abrir el menú de navegación
Cerrar sugerencias
Buscar
Buscar
es
Change Language
Cambiar idioma
Cargar
Iniciar sesión
Iniciar sesión
Descargar gratis durante días
100%
(1)
100% encontró este documento útil (1 voto)
882 vistas
(Arroyo Díaz Carlos) Programación en Java - Vol 2 (2019)
[Arroyo Díaz Carlos] Programación en Java - Vol 2 (2019)
Cargado por
Claudio Ramos
Título mejorado con IA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido,
reclámalo aquí
.
Formatos disponibles
Descarga como PDF o lee en línea desde Scribd
Descargar ahora
Descargar
Guardar [Arroyo Díaz Carlos] Programación en Java - Vol 2 ... para más tarde
Descargar
Guardar
Guardar [Arroyo Díaz Carlos] Programación en Java - Vol 2 ... para más tarde
100%
100% encontró este documento útil, undefined
0%
, undefined
Insertar
Compartir
Imprimir
Reportar
100%
(1)
100% encontró este documento útil (1 voto)
882 vistas
(Arroyo Díaz Carlos) Programación en Java - Vol 2 (2019)
[Arroyo Díaz Carlos] Programación en Java - Vol 2 (2019)
Cargado por
Claudio Ramos
Título mejorado con IA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido,
reclámalo aquí
.
Formatos disponibles
Descarga como PDF o lee en línea desde Scribd
Descargar ahora
Descargar
Guardar [Arroyo Díaz Carlos] Programación en Java - Vol 2 ... para más tarde
Carrusel anterior
Carrusel siguiente
Guardar
Guardar [Arroyo Díaz Carlos] Programación en Java - Vol 2 ... para más tarde
100%
100% encontró este documento útil, undefined
0%
, undefined
Insertar
Compartir
Imprimir
Reportar
Descargar ahora
Descargar
Está en la página 1
/ 103
Buscar
pantalla completa
wey {o bee NENUTA Wee Programacion en Clases - Construccion de objetos Encapsulamiento - HerenciaCURSO DE avec vA Ce [0] Sa BAAN Programacion en Aprende a programar aplicaciones robustas y confiables. Escribe tus cédigos una vez y ejecutalos en cualquier dispositivo.Programacion en Java @ Clases - Construccion de objetos Encapsulamiento - Herencia Gaara Titulo: Programacién en Java II / Autor: Carlos Arroyo Diaz Coordinador editorial: Miguel Lederkremer / Ec ‘Maquetado: Marina Mozzetti / Coleccién: USERS ebooks - LPCU289 (én: Claudio Petia Copyright © MMXIX. Es una publicacion de Six Ediciones. Hecho el depésito que marca la ley 11723. Todos los derechos reservados. Esta publicacién no puede ser reproducida ni en todo rien parte, por ningun medio actual o futuro, sin el permiso previo y por escrito de Six Ediciones. Su infraccion esta penada por las leyes 11723 y 25446, La editorial no asume responsabilidad ‘alguna por cualquier consecuencia derivada de la fabricacién, funcionamiento y/o utizacién de los servicios y productos que se descriven y/o analizan, Todas las marcas mencionadas fen este libro son propiedad exclusiva de sus respectivos duefios. Libro de edicién argentina. www.redusers.com 1PROLOGO Java es un lenguaje maduro y robusto que, desde su nacimiento en el afio 1995, ha demostrado que vino para quedarse y ha logrado evolucionar hasta convertirse en el lenguaje mas utilizado en el mundo tecnologico. Durante nuestro aprendizaje de cualquier lenguaje de programacion podemos encontrarnos con variados libros, pero solo a través de la experimentaci6n y escudrifiando las entrafias de la Web (foros, blogs, under sites), podremos obtener los conocimientos necesarios para enfrentar el aprendizaje de mejor forma. Mientras recorremos este camino, contar con un curso como este €s fundamental pues se presenta como un compendio de todo Jo que necesitamos para enfrentar un lenguaje de programacion, permitiéndonos lograr, a través de ejemplos concretos, un mejor aprendizaje de los distintos temas necesarios para programar en Java Desde el primer momento somos optimistas en que este curso sera para ustedes un desafio muy significativo y, por otro lado, lograré convertirse en una excelente guia del lenguaje Java Carlos Arroyo Diaz Acerca del autor Carlos Arroyo Diaz es programador de profesién, escritor especializado en ‘tecnologias y docente por vocacion. Se desempefia desde hace mas de 20 afios como docente en Informatica General y en los ultimos 10 afios ensefia programacién en Java y Desarrollo Web. También se ha desempefiado como mentor docente en el area de Programacién en varios proyectos del Ministerio de Educacién de la Ciudad Auténoma de Buenos Aires, ensefiando a programar a grupos de jovenes. 2 www.redusers.comACERCA DE ESTE CURSO Java es un lenguaje de programacién que sigue afianzandose como un estandar de la web y, por eso, afto tras ato, aparece en el tope de las busquedas laborales de programadores. Es por esto que hemos creado este curso de Programacién en Java, donde encontrarén todo lo necesario para iniciarse 0 profundizar sus conocimientos en este lenguaje de programacién. El curso esta organizado en cuatro voltimenes, orientados tanto a quien recién se inicia en este lenguaje, como a quien ya esta involucrado y enamorado de Java. En el primer volumen se realiza una revision de las caracteristicas de este lenguaje, también se entregan las indicaciones para instalar el entorno de desarrollo y, posteriormente, se analizan los elementos basicos de la sintaxis y el uso basico de las estructuras de control. En el segundo volumen se presentan las clases en Java, se realiza una introducci6n a los conceptos asociados a la Programacién Orientada a Objetos y también se profundiza en el uso de la herencia, colaboracién entre clases y polimorfismo. E] tercer volumen contiene informacion sobre el uso de las clases abstractas e interfaces, el manejo de excepciones y la recursividad. Finalmente, en el cuarto volumen se enseiia el uso de las estructuras de datos dinamicas, el acceso a bases de datos y la programacién Java para Android. Sabemos que aprender todo lo necesario para programar en Java en tan solo cuatro voliimenes es un tremendo desafio, pero conforme vamos avanzando, el camino se va allanando y las ideas se tornan mas claras. Suerte en el aprendizajelSUMARIO DEL VOLUMEN II 01 INTRODUCCION A LAS CLASES / 6 Creacién de las campos Atriputos / 12 Mobiricaoores pe Acceso / 13 Modificador de atributos EQUE SON Los oBsETOS? / 16 Creacion de objetos Constructores / 17 Declaracion de metodos Uso pe THIS / 25 Declaracion de métodos Garoace cotector ¥ Et méropo rinauize() / 27 Paauetes / 29 Creacién de paquetes 02 INTRODUCCION A LA POO / 34 Cases y opsetas / 35 Objetos / Creacidn de una clase Mooutarinad Y ENCAPSULAMIENTO / 41 Encapsulamienta / Getter y setter / Pasar parametros CoNsTRUCCION DE OBJETOS / 54 Case SWING / 57 03 CoLAgoraciOn DE CLASES / 62 Constructor be oBjetos / 66 Gregorian calendar Uso be constantes / 73. Uso be Static / 76 Mérobos Static / 81 Métodas estaticos de la API / El método main SOBRECARGA DE CONSTRUCTORES / 84 Herencia / 87 Regla de diseno EL potimorrismo / 94 4 www-redusers.comsg ea Ke MK < y so CE A VL re S), S f AN ry ey WA Llegamos a un punto clave en nuestro aprendizaje de Java. Y, antes de comenzar a trabajar en la programaci6n orientada a objetos, realizaremos una incursion en las clases y los objetos, pues se trata de elementos importantes en muchos lenguajes de programacion modernos. En este capitulo, trabajaremos con clases y objetos de una manera individual, sin hacer uso de la colaboracidn entre las clases.1. CLASES Y OBJETOS aS INTRODUCCION A LAS CLASES Una ¢lase puede definirse como una especie de plantilla 0 molde. Aunque en el sentido estricto es una definicién adecuada, intentaremos profundizar un poco més, para ello diremos que se trata de una abstraccién de lo real (objetos), una forma de generalizar una idea para que podamos utilizarla en un programa En Java todo es clase y, también es objeto, gentonces? Para ejemplificar esta idea, pensemos en un libro (abstraccion), algunos pensaremos en un clasico; otros, en un libro de ficcién, y otros, en un best-seller. Sin embargo, si solicitamos pensar en un libro de Borges, la situacién cambia y vamos mas alla; si pedimos pensar en El Aleph, ya tenemos algo concreto; de esta sencilla forma hemos creado un objeto de algo que se inicié como una idea. En Java todo es una clase y, al mismo tiempo, todo es un objeto. Por esta raz6n, cuando creamos un programa, Java nos invita a crear una clase piiblica que levaré el mismo nombre del archivo, La sintaxis de una clase es la siguiente: public class Ejemplo { inst ruccione: Debemos utilizar el modificador para indicar que es publica, la palabra clave class y, luego, el nombre de la clase. Las clases se heredan de una clase jerarquicamente superior llamada Object; sin embargo, cuando sea necesario heredar de otra clase, debemos utilizar la palabra clave extends. De esta forma, la sintaxis para una clase heredada sera la siguiente: public class ClaseHija extends ClasePadre( Anstruccione: Como vemos, una clase es una plantilla que define atributos (variables) y métodos (funciones). La clase se encarga de definir los 6 www-redusers.comatributos y los métodos que son comunes a los objetos de ese tipo; pero luego, cada objeto adoptara sus propios valores, aunque todos compartiran las mismas funciones. Al crear un objeto de una clase, podemos inferir que se crea una instancia de la clase o un objeto propiamente dicho. Figura 1. En este diagrama apreciamos la representacion de Serhumaio—————— Futbolista una clase, una clase Clases retard hia y una interfaz, ‘Veamos la sintaxis de la creacién de una clase y los elementos que pertenecen a ella: class [nombre de la clase] { [atributos o variables de 1a clase] Imétodos 0 funciones de 1a clase] {main} Para entender de mejor forma la creacién e implementacién de una clase, aplicaremos estos conceptos en la solucién de un problema. Debemos crear una clase que permita realizar el ingreso de los datos, el codigo de un empleado y las horas trabajadas. Una vez ingresada esta informacion, deberin mostrarse los datos ingresados y, si el empleado trabajé mas de 8 horas, mencionar que realiz6 horas extras. El c6digo que necesitamos es el siguiente: www.redusers.com 71. CLASES Y OBJETOS as import java.util.scanner; public class Empleado { private Scanner teclado; private String nombre; private String apellido; private string codigo; private int heTrab; public void inicializar() { teclado=new Scanner (System. in) ; System.out .print (“Ingrese el nombre del empleado: By nombre=teclado. next () ; System. out .print (“Ingrese el apellido del empleado:”); apellido=teclado.next (); System.out .print (“Ingrese el cédigo: “); codigo=teclado. next () ; System.out print (“Ingrese la cantidad de horas trabajadas: “); hsTrab=teclado.nextint (); , public void imprimir() { System. out .printin("Nombre: “+ nombre) ; System. out .printn(“Apellido: “+ apellido) ; System. out .printin("cédigo: “+ codigo) ; System. out .printin ("Horas trabajadas: “+ hsTrab); + public void horasExtras() { Af (heTrab>s) { ‘System. out .print (nombre+” “+apellidot “ trabajo horas extras.” ); } else { System. out print (nombre+” “tapellidet “ trabaié horas normales.” ); 8 wwwredusers.comoes JAVA Vol. It public static void main(string{] ar) { Empleado empleadol; empleadol=new Empleade(); empleadol .inicializar(); ‘empleadol. imprimiz(); empleadol .horasExt ras (); Analizaremos ahora el cédigo bloque a bloque, para verificar la participacién de cada uno de los miembros de una clase. En primer lugar, encontramos la clase que, en este ejemplo, se denomina Empleado: public class Empleado { ) Dentro de la misma clase definimos los atributos adecuados: private Scanner teclado; private String nombre; private string apellido private String codigo; private int hsTrab; Crear una clase e instanciar un objeto Ambas acciones van de la mano puesto que una depende de la otra. Instanciar es crear algo especifico de algo general, otorgandole caracteristicas propias. La clase es genérica, el objeto es espectico. ‘www.redusers.com 94. CLASES Y OBJETOS oars Hemos definido todos los atributos con la cléusula del nombre clave private, por lo tanto, no nos permitira el acceso desde otras clases 0 desde el main. Para continuar, declaramos los métodos; la sintaxis es similar al main, aunque sin la palabra clave static: public void inicializar() ( teclado=new Scanner (System. in) ; System.out print (“Ingrese el nombre del empleado: *); nombre=teclado. next () ; System. out .print ("Ingrese el apellido del empleado: apellido=teclado.next (); System. out .print ("Ingrese el cédigo: ~); codigo=teclado.next (); System.out .print ("Ingrese la cantidad de horas trabajadas: “); hsTrab=teclado.nextInt () ; a7) En el método izar(), que luego Ilamaremos desde el main, creamos el objeto de la clase Scanner y cargamos por teclado los atributos nombre, apellido, cédigo y hsTrab; el método inicializar() puede acceder a los atributos de la clase Empleado. Ahora pasemos al segundo método, que se encargara de imprimir el contenido de los atributos nombre, apellido y hsTrab, que fueron cargados previamente: public void imprimir() { System. out .print1n("Nombre: “+ nombre) ; System.out .printn("Apellido: “+ apellido) ; System. out .print1n("Cédigo: “+ codigo) ; System. out .printin ("Horas trabajadas: “+ hsTrab) ; d El tercer método tiene como objetivo mostrar en un mensaje si el empleado trabajé 0 no horas extras: 10 ‘wwwredusers.compublic void horasExtras() { 4€ (hstrab>8) ( System. out .print (nombret” “tapellidot “ trabajé hor: extras.” ); } else { System. out .print (nombret” “tapellidot “ trabajé hor: normales.” ); d Por tiltimo, en el método main declaramos un objeto de la clase Empleado y, luego, llamamos a los métodos creados antes en un orden adecuado: public static void main(String[] ar) { Empleado empleadol; //Declaracién del objeto empleadol=new Empleado() ;//Creacién del objeto empleadol.inicializar();//Llamada a un método empleadol imprimir (); ‘empleadoi .horasExtras (); Ob 96 se TWD GO: —— —- = “(Salen WE CEPER PEL aR eH eS fe oe Figura 2. En el codigo mostrado en el IDE, observamos el listado de los miembros agrupados y en orden alfabético, no en orden de aparicion. n1. CLASES Y OBJETOS cas Creacidn de los campos Para ver el contenido de nuestra clase, debemos crear los diferentes campos de la clase; para lograrlo, nos basta con declarar variables en el interior del bloque de cédigo de la clase e indicar la visibilidad de Ja variable, asi como su tipo y su nombre. La sintaxis adecuada para la creacién de los campos es la siguiente: [private | protected | public] tipovariable nombrevariable; Para indicar la visibilidad de las variables podemos utilizar private, protected y public, o no especificar informacion. ATRIBUTOS Los métodos y los atributos que habitualmente utilizamos en una clase estan asociados a las instancias de las clases 0 los abjetos. Para simplificar esto podemos entender una instancia de clase como la concretizacion de una clase; de esta forma, los atributos vienen a ser las caracteristicas de aquellos objetos instanciados. Los atributos de una clase se definen segtin la siguiente sintaxis [modificadorVisibilidad] [modificadoratributo]tipo nombrevariable [=valorInicial]; La clase Object Se trata de la clase raiz de todo el arbol jerarquico de clases de Java. Esta clase nos provee de una gran cantidad de métodos que seran utilizados por los objetos. En la documentacién de la API de Java, encontraremos la lista completa de estos objetos; para acceder a ella hacemos uso de la siguiente direccién web: https://docs.oracle.com/javase/10/docs/api/. 2 www-redusers.comoes JAVA Vol. It En este cédigo encontramos los siguientes elementos: Se trata del nombre de la variable. Dray Indica desde qué parte del cédigo se puede acceder ala variable, a esto lo llamaremos modificador de acceso a la variable. Permite inicializar la variable con un valor. erate Se trata de las caracteristicas especificas del atributo. MODIFICADORES DE ACCESO Los modificadores de acceso figuran en el encapsulamiento (tema que examinaremos en la introduccién a la POO); sirven para controlar el acceso a los miembros de una clase ademas de vincular datos con el c6digo que lo va a manipular, detalle muy importante en la seguridad de nuestros datos sensibles. Por ahora presentaremos los tres modificadores: public, private y protected.: public Indica que se trata de un atributo accesible a través de una instancia del objeto, veamos un ejemplo: public class Ejemplo{ public String cadena = “Esto es un String”; public int numero = 10; public void saludo() { System.out .printin("Este es un saludo de método”); ) www.redusers.com B1. CLASES Y OBJETOS oes private Indica que el atributo no es accesible. Al ser heredado, el atributo se convierte en inaccesible: public class Ejemplo{ private String cadena = “Esto es un String”; private int numero = 10; private void saludo () { System. out .printin (“Este es un d Ludo de método”) ; protected Indica que el atributo no es accesible, pero, al heredar, si se puede usar desde la clase derivada. Veamos un cédigo de ejemplo: public class Ejemplo{ protected String cadena = “Esto protected int numero = 10; un String”; protected void saludo() { System. out .printin("Este es un saludo de método”) ; d Sin especificar También se conoce como friendly, sitve para indicar visibilidad de paquete, es decir, se puede acceder a través de una instancia, pero solo desde clases que se encuentren en el mismo paquete public class Ejemplo{ String cadena = “Esto es un String”; int numero = 10; 4 www.redusers.comcas JAVA Vol. It void saludo() { System.out .print1n("Este es un saludo de método”); , Modificador de atributos Dependiendo de la pertenencia de algunos atributos, estos tendran caracteristicas propias en el objeto, en la vida del atributo o en la forma de acceso. Por esta raz6n, debemos tener en cuenta los siguientes modificadores: static Indica que el atributo pertenece a la clase, no a los objetos creados a partir de ella: private String nombr. private int edad; static int contadorPersonas; final Indica que el atributo es una constante, en este caso debe presentar un valor inicial en forma obligatoria: private static final float PI = 3.1416; transient El atributo figuraré como transitorio, por lo tanto, no podra ser serializado: private transient String password; volatile La forma de acceder a este atributo es mediante hilos o threads de forma asincrona: volatile int valor = 10; www.redusers.com 61. CLASES Y OBJETOS as QUE SON LOS OBJETOS? Un elemento fundamental a la hora de programar en Java son los objetos. Aunque en el capitulo 6 de esta obra realizaremos un anilisis exhaustivo de estos elementos y profundizaremos en la forma en que trabajan dentro de las clases, en esta ocasién presentaremos los fundamentos de los objetos dentro de un programa. Partamos de la siguiente premisa que ya hemos mencionado: en Java todo es clase y todo es objeto. Teniendo esto en cuenta, podemos pensar en que, en el mundo real, los objetos se crean a partir de otros objetos (por ejemplo, un lépiz antes fue madera y, antes, fue un arbol). Cada objeto tiene sus propios estados 0 atributos, y comportamientos 0 métodos. Por ejemplo, una persona tiene sus propios atributos, como altura, peso, color de cabello, y también comportamientos: piensa, corre, estudia, duerme; es decir, se trata de acciones que van a determinar a esa persona u objeto. Por esta razén, podemos deducir que los objetos se crean a partir de un modelo o clase, tienen caracteristicas propias (atributos) y realizan determinadas acciones (métodos); pero también debemos considerar que un objeto se crea, vive y muere, Creacidn de objetos Para tener en cuenta lo que es una clase de objetos, pensemos en un molde para hacer objetos determinados (un juguete, una galletita); ese molde es nuestra clase y lo usamos para crear el objeto. El molde debe agrupar las propiedades comunes de todos los objetos, pero no todos los objetos tienen que ser necesariamente iguales. Declaraciones import Si se utiliza el nombre de clase completamente calificado cada vez que se usa el nombre de una clase en el cédigo fuente, el compilador no requiere declaraciones import en el archivo fuente de Java. Sin embargo, la mayoria de los programadores prefiere utilizar declaraciones import. 16 wwwredusers.comoss JAVA Vol. It Un objeto se crea en el momento en que se define una variable de dicha clase, veamos un ejemplo: objeto new Ejemplo(); Con esto hemos creado un objeto de una clase Ejemplo. A la creacién de un objeto se la llama instancia, por lo tanto, si decimos “instancia de la clase Ejemplo’, nos estamos refiriendo a un objeto creado de la clase Ejemplo. CONSTRUCTORES Un constructor de clase debe poner cada objeto a disposicién para ser usado, es lo que llamaremos inicializacién. El constructor Inicializa el objeto en un estado razonable. Algunas caracteristicas de los constructores son las siguientes: > Debe llevar el mismo nombre de la clase. > No siempre retorna valor. > Toda clase tiene al menos un constructor; aun cuando no se haya definido ninguno, va crear uno de forma predeterminada. > Podemos crear tantos constructores como deseemos. Existen tres tipos de constructores: constructor por defecto, constructor de copia y constructor comin, analicémoslos en detalle, Constructor por defecto Es un constructor que no fue definido antes; es muy comin encontrarlos en los programas. Veamos un ejemplo: public class Empleado { private String nombre; private String apellido; www.redusers.com wv1. CLASES Y OBJETOS cas private int codigoEmpleado; Empleado empleado-new Empleado() ; En el ejemplo anterior no fue creado un constructor, por lo tanto, Java crea uno de forma predeterminada. El operador new indica que va a crear un objeto con ese constructor. Otra forma de definir un método constructor es la siguiente: public class Empleado { private String nombre; private String apellido; private int codigoEmpleado; public Empleado() { Empleado empleado=new Empleado() ; Constructor de copia Cuando necesitamos inicializar un objeto con otro objeto de la misma clase, usamos este tipo de constructores. Analicemos el siguiente ejemplo public class Empleado { private String nombre; private String apellido; private int codigoEmpleado; //Constructor por defecto public Empleado() { » / [Constructor copia public Empleado(Empleado empleado) { 18 wwwredusers.comoes JAVA Vol. It this nombre=empleado.Nombre; this. apellido~empleado.Apellido; this. codigoempleado-empleado .CodigoEmpleado; » En el c6digo anterior, podemos notar el cambio de nombres (entre mayusculas y minusculas) en los objetos, lo realizamos para evitar inconvenientes entre nombres que se refieren al mismo objeto. Entonces, el método de implementacién seria el siguiente: Empleado empleado=new Empleado (); Empleado empleadoCopia=new Empleado(empleado) ; Constructor comin (con argumentos) Este tipo de constructor recibird los parémetros y, luego, los pasaré al objeto creado. Veamos el ejemplo para conocer como se implementa: public class Empleado ( private String nombre; private String apellido; private int codigoEmpleado; / {constructor comin public Empleado(string nom, String ape, int codigo) { this. codigoEmpleado=codigo; Empleado empleadoCopia=new Empleado (guan”, "Pérez", 2334); Podemos observar que inicializamos los valores del empleado con los datos que hemos pasado por parametro. www.redusers.com 191. CLASES Y OBJETOS as Declaraci6n de métodos Cuando se plantea una clase en lugar de especificar todo el algoritmo. en un unico método, se dividen todas las responsabilidades de las clases en un conjunto de métodos. Un método presenta la siguiente sintaxis: public void nombre del método() { instrucciones En la sintaxis ofrecida, se muestra el método predeterminado, es decir, sin parametros, Métodos con parametros Cuando un método tiene parametros dentro de los paréntesis, se instancian las variables u otros argumentos: public void nombre del método(parémetros) { Anstrucciones.. A estos parémetros, podemos mencionarlos como variables locales al método, su valor se inicializa con datos que llegan cuando los ilamamos. Constructor vacio Un constructor se denomina vacio cuando no lleva parametros. Sino se define ningiin constructor, el compilador crear uno por defecto; esto permite crear objetos con New NombreClase() sin argumentos, aunque no se haya definido ningin constructor. Muchos frameworks e IDE precisan la definicién de objetos con constructores vacios. Por esta razén, es comin agregar un segundo constructor sin saber que el compilador crear un constructor vacio, y esto acarreara problemas y errores. 20 wwwredusers.comoes JAVA Vol. It Veamos un ejemplo para clarificar el uso de los métodos dentro de las clases: int horas (int seg) { Ant h = seg/3600; return h; int minutos (int seg) { int m= (seg%3600) /60; return m; int segundos(int seg) ( Ant s = (seg%3600)%60; return 5; Como podemos apreciar, dentro de los métodos horas, minutos y segundos figuran los parametros que seran utilizados con posterioridad Métodos que retornan un dato Cuando un método retorna un dato, en vez de indicar la palabra clave void previo al nombre del método, sefialamos el tipo de dato que retorna. Luego, dentro del algoritmo, en el momento que queremos que este finalice y retorne el dato, empleamos la palabra clave return con el valor respectivo. Esta es la sintaxis adecuada: public tipo de dato nombre del método(parémetros) { inetrucciones.. return tipo de dato Veamos un ejemplo para analizar la forma en que se implementan métodos que retornan datos. Pensemos en un programa que pide ingresar tres valores por teclado. Luego de esto, debera mostrar el valor mayor y el menor. www.redusers.com a1. CLASES Y OBJETOS as Veamos el cov 0 que puede ayudarnos a calcular el mayor de tres valores. public int calcularMayor(int numl,int num2,int num3) Ant mayor; 4€(numl> num2 6 numl> num3) { mayor= numl; } else { if (num2> num3) { mayor= num2; } else { mayor= num3; y return mayor; Podemos observar que el método retorna un entero y recibe tres pardmetros: public int calcularMayor(int num, int num2,int num3) Dentro del método verificamos cual de los tres parametros almacena un valor mayor, guardamos este valor en una variable local Hamada mayor, este valor lo retornamos con un return, La llamada al método calcularMayor() la hacemos desde adentro de otro método, al que lamamos cargarValores() mayor = calcularMayor (valor1,valor2,valor3) ; Es necesario asignar a una variable el valor devuelto por el método calcularMayor(). Luego mostramos el contenido de la variable mayor: System.out .print1n("E1 valor mayor de los tres 22 www.redusers.comoes JAVA Vol. It eT Mr Lo) ed Orr) Figura 3. En la imagen podemos ver la forma en que se retorna un resultado ante la llamada al método. El tipo de retorno puede ser cualquier tipo de dato, tipo basico del lenguaje 0 tipo objeto. Si el método no tiene informacion para devolver, usaremos la palabra clave void en lugar del tipo de retorno Creacién de métodos Los métodos son funciones definidas en el interior de una clase, que sirven para manejar los campos de dicha clase. La sintaxis de declaracion de un método es la siguiente: modificadores tipoDeRetorno nombreDelMétodo (listaParametros) throws listakxcepeién( instruccion: — B od Nombre_Método Sa DT RCo ie Ll) c-_ Figura 4. Aqui podemos ver grdficamente la carga de varios parametros y la lamada a un valor del método. www.redusers.com 2B1. CLASES Y OBJETOS cas Entre los modificadores de métodos con que Java cuenta encontramos: PCy el método solo puede ser usado en la clase donde fue definido. el método solo se puede usar en la clase donde fue definido, en las subclases de esta clase y en las otras clases que pertenecen a un mismo paquete. Pr se puede utilizar el método desde cualquier otra clase. Sino se utiliza ninguna de estas palabras reservadas, entonces la visibilidad se limitara al paquete donde esta definida la clase. Es necesario tener en cuenta que existen otros modificadores que son utilizados para tareas especificas, por lo que no se encuentran en el Ambito del presente libro: Indica que el método es un método de clase. El método es abstracto y no contiene codigo. La clase donde esta definido también debe ser abstracta. El método no puede sobrescribirse en una subclase. Usado cuando el método se encuentra en un archivo externo escrito en otro lenguaje. El método solo puede ser ejecutado por un unico hilo a la vez. Destructores en Java En Java no existen los destructores, sino que la manera de limpiar la memoria es a través de su recolector de basura: garbage collector. Este se encarga de recolectar todas las variables u objetos que no se estén utiizando, al igual que aquellos para los que no haya referencias por una clase en ejecucién. El programador puede decidir en qué momento pasaré el recolector de basura, Para logrerlo, hay que escribir System.get). 24 www-redusers.comoes JAVA Vol. It USO DE THIS Como sabemos, un constructor es un método especial que se ejecuta cuando creamos un objeto. A diferencia de un método comin, no lleva un tipo de retorno, y su nombre es el mismo que el de la clase. Veamos la sintaxis de la implementacién: class Empleado{ public Empleado() { inst rucciones. ) public Empleado(String nombre) { inst rucciones. ) Un método miembro es un método asociado al objeto, es decir, no se trata de un método estatico y, cuando se esté ejecutando, lo hace asociado a un objeto. Ahora bien, ,cmo podemos hacer una referencia al objeto que se esté ejecutando? En realidad, no existe una variable que refiera a dicho objeto, por esta raz6n entra en accién this, que actia como una variable que referencia al objeto. En los ejemplos de la clase Empleado, podemos usar this.nombre para acceder al nombre del objeto asociado La palabra clave this funciona de la misma manera dentro de un constructor como dentro de un método miembro. En el siguiente ejemplo (propuesto antes), haremos un recorrido a modo de resumen de todo lo que hemos visto hasta este momento, incluyendo el uso de tt package empleado; public class Empleado { String nombre, apellido; Ant codigoEmpleado; public Empleado(){ //método sin pardémetros thie.nombre = “No informado”; www.redusers.com Py1. CLASES Y OBJETOS oes this.apellide = “No informado”; this.codigoEmpleado = 0; d public Empleado(string nombre) { //con un parémetro this (); this.nombre = nombre; public Empleados (String nombre, String apellido, int codigoEmpleado) { //método con varios parémetros this nombre = nombre; this.apellido = apellido; this.codigoEmpleado = codigozmpleado; Public String toString()( //Método del objeto string return “Empleado = “+ this.nombre + * “ + apellido + * Cédigo: “ + codigoEmpleado; y public static void main(String[] args) { Empleado empleadol = new Empleado() ; Empleado empleado2 = new Empleado("Maria”); Empleado empleado3 = new Empleado(*Juan”, "Pérez", 2335); System. out .print1n (empleadol .toString()) ; System. out .print1n (empleado2.toString()) ; System. out .print1n (empleado3 .tostring()) ; Cuando ejecutamos este programa, arrojar la siguiente informacién: Empleado = No informado No informado Cédigo: 0 Empleado = Maria No informado Cédigo: 0 Empleado = Juan Pérez Cédigo: 2335, 26 wwwredusers.comoes JAVA Vol. It Al crear e] método sin parametros, no arrojara informacion; cuando colocamos un solo parametro (en este caso el nombre), solo arrojara el nombre del empleado que hemos llamado. Finalmente, si referenciamos a todos los objetos, observaremos que nos mostrar los datos del empleado en forma completa. GARBAGE COLLECTOR Y EL METODO FINALIZE() Cuando creamos programas en Java, estos se almacenardn en la memoria principal, por esta raz6n, cuando creamos variables ¢ instanciamos objetos, se ralentizara el programa ya que existiran elementos que no se estan utilizando. En este punto es importante el denominado garbage collector, se trata de una especie de limpiador que escanea dindmicamente en la memoria buscando objetos que ya no estén referenciados. Para familiarizarnos con el uso y las caracteristicas de este recolector de basura, podemos visitar la pagina oficial de Oracle, en la siguiente direccién: https://docs.oracle.com/javase/10/docs/ api/java/lang/System.html#gc(). Para profundizar en este recolector, debemos entender como funciona la memoria. Esta contiene dos elementos fundamentales stack y heap, en el primero se guardan los valores primitivos (int, float, double, boolean, char, etcétera). En el segundo, se alojan todos los objetos creados en un programa. Si tenemos una clase Empleado, esta crearé una instancia de ella, 0 un objeto de clase en el heap, mientras que creara una referencia a ese objeto en el stack. Garbage collector apunta a un espacio de memoria. Como cada espacio de esa memoria esta reservado para alguna aplicaci6n, rutina, etcétera, cuando creamos un objeto, estamos creando un puntero, que sefialara ese espacio de la memoria, Por ejemplo cuando hacemos a instruccién new Objeto(), se reserva un espacio de la memoria para alojar el objeto que acabamos de instanciar. www.redusers.com 271. CLASES Y OBJETOS Cert ee) J Pree ns Bryce Figura 5. Este esquema muestra el funcionamiento de la memoria y el espacio asignado a cada uno de los objetos y tipos primitives. Veamos un ejemplo: Empleado empleadol = new Empleado() ; Empleado empleado2 = new Empleado() ; Hemos reservado dos espacios de memoria para los dos objetos referenciados: empleadol y empleado2. Si asignamos valores a los objetos antes creados, veremos lo que sucede Empleado empleadol = new Empleado("Juan”); Empleado2 = empleadol; Assimple vista, estamos asignando los atributos del empleadol al ‘empleado2, sin embargo, esto no es asi y resulta muy importante reconocer este tipo de asignaciones, pues lo que realmente hacemos es que ‘empleado2 apunte al empleadol, es decir, a la misma ubicacién de memoria a la que apunta empleadol. Esta es una de las situaciones que causan varios dolores de cabeza a los iniciados en este lenguaje, sin embargo, mas adelante veremos como solucionarlo gracias a los getters y setters. 28 www-redusers.comJAVA Vol. It Seed Coes Crary eC) STACK 10 @ ooffa \ Figura 6. En este esquema se muestra cuando dos objetos instanciados referencian al mismo espacio de memoria. Datos primitivos Pee Rel ier PAQUETES Java provee una utilidad que nos permite almacenar codigos relacionados entre si para poder utilizarlos en un nuevo programa, de tal manera que no sea necesario copiarlo o rehacerlo, al contrario, solo se precisa importarlo directamente y acceder a él. Los denominados paquetes nos ayudan a organizar y administrar de una mejor manera nuestros proyectos. Otra de las ventajas de la utilizacton de los paquetes o packages es reducir los conflictos entre los nombres de las clases que se llaman de la misma manera, pero que se encuentran en paquetes diferentes, y también proteger el acceso a las clases. Un ejemplo que ya hemos visto es el uso de la clase Scanner, que se encuentra dentro del paquete java.util. Para tener acceso a cada uno de sus métodos y utilizarlos debemos escribir lo siguiente: import java.util. Scanner; www.redusers.com 291. CLASES Y OBJETOS as Para referirnos a una clase de un paquete, es necesario anteponer el nombre de la clase al nombre del paquete, exceptuando aquellas ocasiones en que el paquete haya sido importando explicitamente. Veamos un ejemplo: patMatriz .MatrizCuadrada En esta ocasién, el paquete se lama patMatriz y contiene una clase denominada MatrizCuadrada. Entonces, para importarla en un proyecto, debemos usar la palabra reservada import, de esta manera accederemos a su contenido: Amport pqtMatriz; Ahora podemos referirnos a la clase MatrizCuadrada simplemente escribiendo su nombre sin necesidad de escribir qué paquete la contiene. De la misma forma, es posible acceder a todos los paquetes que Java nos ofrece; si queremos conocer todos los que existen hasta Ja altima version, debemos visitar el sitio oficial de Oracle, en la siguiente direccion: https://docs.oracle.com/javase/10/docs/api/ overview-summary.htm, Creacidn de paquetes Para crear un paquete en Java, necesitamos crear una carpeta (no importa por ahora el lugar), a la que [lamaremos misPaquetes. Dentro de ella crearemos otra, a la que llamaremos programas, y otra carpeta a la que denominaremos primeros. Ahora escribiremos un sencillo programa de Java package misPaquetes.programas .primeros Le estamos indicando que nuestro programa va a quedar dentro de este paquete, Ahora definiremos nuestra clase public class Programita( public void imprimir () { 30 wwwredusers.comoes JAVA Vol. It System.out .printin(*\nEsto es un programa desde el paquete primeros”); ) El modificador de acceso debe ser publico tanto en la clase como en el método, de esta forma sera posible acceder a la clase desde cualquier otro paquete. Cuando importemos la clase del paquete creado antes, debemos hacerlo de la siguiente manera import misPaquetes .programas.primeros.*; Con esto traeremos a las clases que hay dentro de él. RESUMEN CAPITULO 01 En este capitulo analizamos las clases, el control de accesos a los miembros, la creacién de constructores y los atributos. Hicimos una incursién a los métodos, y analizamos de una manera practica su uso dentro de las clases y la importancia de estos en el funcionamiento de los programas. Luego hicimos una referencia a objetos mediante el uso de this, y vimos como hace Java para recolectar la basura y liberar la memoria. Finalmente analizamos la creaci6n y el acceso a los packages. www.redusers.com 311. CLASES Y OBJETOS as Actividades 01 Test de Autoevaluacion 1 2. 3. 4, 5. 6. 7. 8. 9. {Qué es una clase? iA qué llamamos instancia de una clase? {Qué es un objeto? {Qué son los atributos? Cite tres ejemplos. Explique la diferencia entre private y protected. {Qué es un constructor? {Cémo referenciamos los objetos a través de this? éExiste un recolector de basura en Java? {Qué funcién cumplen los paquetes? 10. Explique cémo se crean los paquetes. Ejercicios practicos 1. 2 3. 32 Cree una clase, luego instancie un objeto de ella. Cree un método y provoque acceso alos miembros de la clase. Cree tres métodos, uno sin pardmetros, otro con un pardmetro y otro con tres parémetros. Luego invoque a esos métodos. Uilizando los conceptos de clases y objetos, genere un programa en donde se ingrese y almacene, por teclado, la informacidn de varios alumnos: nombre, edad, grado. Luego haga el llamado de alguno de los datos a través de objetos. Utiizando la importacién de clases y paquetes, cree un programa que haga las operaciones aritméticas basicas, e incluya los métodos mateméticos pow y sart. www.redusers.comv4 Programacion orientada a objetos La programacién orientada a objetos (POO) es uno de los paradigmas mas usados en la programacidn, por ello en esta ocasiGn veremos a fondo las clases y las objetos, como se crean, su tratamiento, la interacci6n con otro tipo de objetos y clases, y también algunos temas mas profundos de este paradigma, como la herencia, el polimarfismo y el encapsulamiento. ‘022. PROGRAMACION ORIENTADA A OBJETOS as INTRODUCCION A LA POO La programaci6n orientada a objetos 0 POO es un paradigma de programacién que define y organiza el software basandose en entidades que denominamos objetos. La POO se relaciona con la programacién, base de datos, procesos de desarrollo, arquitectura de informacion y comunicaciones. Java es 100% orientado a objetos, pues intenta trasladar la naturaleza de los objetos de la vida cotidiana a la programacion, es decir, que los objetos tienen un estado, un comportamiento y propiedades. Por ejemplo, llamemos objeto a un auto, una mesa oa seres vi como un perro 0 una persona, Tomemos como ejemplo el objeto auto y hagamos las siguientes preguntas’ 0s, i iCudl es el estado del auto? Puede estar estacionado, detenido, circulando. | | {Qué propiedades tiene? Posee un color, un tamafio, un modelo, Hi Qué comportamiento tiene? Puede arrancar, frenar, acelerar, doblar, etcétera. Los objetos combinan datos, comportamiento e identidad. En consecuencia, pensar de esta manera tiene sus ventajas pues dividimos a los objetos en elementos cada vez mas pequefios. En el ejemplo que mencionamos, dividimos al auto en el motor, los asientos, las ruedas, el tablero de mando, etcétera. Fl uso de la POO supone algunas ventajas, por ejemplo, la reutilizacién de los cédigos (herencia); en el ejemplo mencionado, podemos utilizar los repuestos de un auto para otro del mismo tipo. Por otra parte, si existiera un error en alguna linea de cédigo, la ejecucién puede continuar gracias al tratamiento de excepciones. Podria romperse alguna parte no fundamental del auto y este seguiria andando, ya que esté dividido en partes o médulos. Por illtimo, es necesario mencionar que existen algunos objetos que no dependen directamente de otros, por ejemplo, el volante y la bateria no dependen uno del otro. Sin embargo, estos objetos funcionan y logran que el todo marche correctamente, a esto se conoce como encapsulamiento. Si tenemos en cuenta todo lo que hemos mencionado, un programa 34 wwwredusers.comoes JAVA Vol. It en Java es un conjunto de clases unidas entre si, de tal manera que funciona como una unidad. Hasta ahora, todos los programas que hemos desarrollado a lo largo de este libro, constaban de una iinica clase pues tenian como objetivo aprender la sintaxis y las caracteristicas del lenguaje. CLASES Y OBJETOS Una clase es una forma generalizada de un modelo, en la que se describen las caracteristicas mas comunes de un grupo de objetos. Si pensamos en una fabrica de autos, el plano y posteriormente el molde del cual se construiran los autos corresponderan a la clase, y cada uno de los autos que producira la planta de montaje seran los objetos, que van a compartir una serie de caracteristicas del molde original. Sin embargo, cada uno de ellos tendra una identidad propia denominada atributos o propiedades y, también, métodos 0 comportamientos. Basicamente, una clase genérica se compone de la declaracion de la clase y el cuerpo de esta, que a su vez se puede dividir en la seccién de la declaraci6n, y, opcionalmente de la inicializacién de los atributos 0 variables miembro, y la declaracin ¢ implementacion de los métodos, llamados funciones miembro. De esta manera, la sintaxis adecuada es la siguiente Elementos de la POO La POO ofrece caracteristicas especiales que han cambiado de manera sustancial la forma de programar, por ejemplo, las clases y los objetos, elementos fundamentales en un programa de Java, Por otra parte, los métodos que se encargan de generar la comunicacién entre las distintas clases. Asimismo, los abjetos deben tener un estado y varios atributos que los identifican y diferencian respecto de otros objetos y, finalmente, la herencia, que nos permite reutiizar cédigos, en tanto que el polimorfismo permite que los objetos se comporten de distintas maneras a lo largo de un programa, www.redusers.com 352. PROGRAMACION ORIENTADA A OBJETOS cas Declaraciénclase( Declaracién atributos; Declaracién métodos() ( ‘Veamos un ejemplo en el que podremos analizar cémo se construye una clase y, dentro de ella, un conjunto de objetos.Para acceder a un atributo de un objeto, lo hacemos de la siguiente forma: Nombrebjeto.propiedad = [valor de 1a propiedad] ; De la misma forma, para acceder al comportamiento de un objeto seria: NombreObjeto.método () ; PROPIEDADES DEL OBJETO COMPORTAMIENTO DEL OBJETO *Mercury.color="azul” *Mercury.arrancal); “Mercury.afio=2015; “Mercury. frena(); *Mercury.peso=1450; *Mercury.gira(); *Mercury.puertas=4; *Mercury.acelera(); Figura 1. Pseudocédigo de la construccién del modelo de objeto de autos, en este caso tenemos las caracteristicas y el comportamiento, Objetos Un objeto es una instanciacién de una variable cuyo tipo de datos es una clase. En si, en Java todo es objeto, en consecuencia, todo es clase, puesto que un objeto es la concretizacion de la clase que lo precede. Si pensamos en un perro (una clase), la idea es muy general; luego pensamos en nuestro perro, este tiene un nombre, unas caracteristicas y sus comportamientos propios. 36 wwwredusers.comCreacion de una clase Para aprender la forma adecuada de crear una clase en NetBeans, comenzaremos creando la clase por la que se seguiran el resto de los elementos inherentes a ella. Para lograrlo, debemos crear un nuevo proyecto haciendo clic en Archivo/Proyecto nuevo. A continuacién, elegimos la carpeta Java y luego, en la opcién Java Application, hacemos clic en el boton Siguiente. Ahora es el momento en que podremos elegir el nombre del proyecto, la ubicacién o también ubicar la clase dentro de un proyecto ya existente. Once meme = =e L Seecona proyecto ae (es co: cosine proyecte: [C/UerihaiiedDoamerisWeteancroecs | ( Barnet) Caperaproyeco: —_lafledPoaments eee je avadpalcatonts [learns carpets dents para snscerar ne bots ‘irae ters de compancen (en Ay por ms (ales [vem dase rca ocanphaton2s Jevadesaton2s Figura 2. Una vez que hayamos elegido las opciones adecuadas para el nuevo proyecto, hacemos clic en Finalizar. Ahora debemos eliminar la clase predeterminada para empezar todo desde cero. Crearemos una clase llamada Auto, para ello hacemos clic con el botén derecho del mouse en el nombre del paquete y elegimos la opcién Nuevo/Java class. Esta clase sera la base para el resto de los objetos que crearemos. ‘www.redusers.com 372. PROGRAMACION ORIENTADA A OBJETOS cas POO - NetBeans IDE82 Archivo Editar Ver Naveger Fuente Reestructurar Ejecutar Depurar Profile Team Herramientas BEES OE eta is) TW D-B-O- Atos « History | [@ HB - iD yeccaae pea (RRP BG" &siagleala * gauthor ¢ public class Auto { fros Proyectos -Metodos | @)Navegador Figura 3. En esta imagen vemos la vista general de la creaciOn de una clase y la estructura que existe dentro de ella Ahora nos dedicaremos a crear los atributos para nuestra clase Auto: public class Auto ( int ruedas; int ancho; int largo; int motor; int peso; ? Como ya tenemos las caracteristicas 0 atributos de la clase Auto, le asignaremos los valores que tendra cada una de ellas, recordemos que en el capitulo 5 ya realizamos una incursi6n en este procedimiento, En esta ocasion vamos a realizar un método constructor que se encargaré de otorgar un estado inicial a nuestro objeto. La manera de hacerlo es la siguiente: 38 www.redusers.comas JAVA Vol. It public Auto() {//Constructor de la clase ruedas = 4; ancho = 300; large = 2200; motor = 1600; peso = 600; Esto, de alguna forma, corresponde a inicializar los atributos creados en el c6digo anterior. Ahora debemos crear una nueva clase, sin embargo, esta vez contendré el método main, tal como vemos a continuacién: package poo; public clase Uso_Coche { public static void main(String[] args) { Lo que haremos es crear objetos que comparten la estructura comin de la clase Auto; a esto lo denominamos instanciar una clase, un concepto que vamos a utilizar mucho en la programacién con Java: Auto mercury = new Auto(); Creamos un objeto de la clase Auto, en este caso lo llamamos ‘mercury, luego escribimos la palabra clave new y el nombre del constructor de la clase, en este caso Auto(). Cuando escribimos el nombre del objeto y luego un punto (.), el IDE nos mostraré las propiedades que pertenecen a la clase Auto, esto resulta bastante practico a la hora de programar. Veamos el cédigo completo: ‘www.redusers.com 392. PROGRAMACION ORIENTADA A OBJETOS oma Public class Usc_Coche ( Public static void main(String[] args) { Auto mercury = new Auto(); System. out .printin ("Este coche tiene: ° + mercury.ruedas + ruedas”); ) ) En el cédigo anterior, hemos instanciado la clase Auto mediante un constructor Hamado Auto(), el que Hama a la clase y permite utilizar las acciones que ella contenga. En este caso traeremos a los atributos que contenga el objeto mercury (por ejemplo las ruedas), aunque también podemos llamar a otros elementos de ese objeto. [= Bite ie Reger Foe Rector Gear Depow Belle Tem eventos Vownn Ape BES OE cero 1 TW D-H: [eAteme Ue Cochejove 6) gFevwonszio0 [ea] tery | l I INSFEGlFetiagiegiaa @rcetey0) weta| @rorseya2) vetal Ovaie vexa| Qwest Heng eines) rota Qvaic [long timeout, ine nanos) void Figura 4. Notemos que, cuando escribimos el objeto y un punto (.), el IDE mostraré en forma automatica los atributos generales creados en la clase, lo que nos resulta ventajoso y rapido. 40 www.redusers.comMODULARIDAD Y ENCAPSULAMIENTO Si no separamos en tareas mas pequefias nuestros programas, a futuro tendremos muchos problemas para detectar errores y depurarlos. Entonces nos encontramos con el concepto de modularidad. La modularidad es la forma en que dividimos nuestro programa en tareas mas pequefas, al igual que un automovil puede dividirse en partes mas pequefias, como chasis, ruedas, motor, asientos, etcétera, pero que, de alguna manera, todas se concatenan y hacen una unidad que tiene un propésito mas general. [Reine ar arava Tose Rector ecia Depaar Pale Tan Hears Yours Ra BEES OC Siew Tw Db: | (Bw Cocheseva | (cote CCE ee T Figura 5. Observemos que se han ubicado las dos clases de manera paralela, de tal forma que podemos trabajar en conjunto y ver lo que hace una o la otra. Esto se puede realizar en forma vertical v horizontal. www.redusers.com a2. PROGRAMACION ORIENTADA A OBJETOS En el ejemplo del auto, podemos ver que sus elementos se fusionan, ya que por separado serian inertes 0, si no existieran, el programa comenzaria a fallar. Ahora bien, cuando en un programa tenemos varias clases siempre una de ellas sera la clase principal, es decir, Ja que provocara la ejecuci6n del programa. Esta clase principal es aquella que contiene al método main, entonces, siempre existira en un. programa hecho en Java una clase que contenga a este método. Encapsulamiento nese consiste en esconder los atributos de una manera que, tan solo con algunos métodos especiales, podamos verlos desde el lugar que los invoquemos. El uso de este concepto en el paradigma a objetos es sinénimo de seguridad. La encapsulacién es muy conveniente y nos permite colocar en funcionamiento nuestro objeto en cualquier tipo de sistema, de una manera modular y escalable. Existen ciertos modelos o reglas para poder encapsular: sry Hace que el miembro de la clase pueda ser accedido desde e! exterior de una clase y desde cualquier parte del programa. GCL Solo es accesible desde la clase y desde las clases que Petre Ly 42 heredan (a cualquier nivel). Solo es accesible desde las clases. Si tenemos un programa que esté compuesto por mas de dos clases, necesitamos imperiosamente usar el encapsulamiento. Este concepto aparece cuando trabajamos con una cantidad de clases, y cada una de ellas posee dedicacién a ciertas funcionalidades dentro del programa. Deberia ser posible invocar las funcionalidades de una clase principal, pero no siempre esto sucede, ya sea por cuestiones de seguridad 0 por preferencias del programador, que puede requerir que determinadas acciones solo se puedan manejar desde su propio médulo, a esto se le llama encapsulamiento. Cémo hacemos para implementarlo? Usemos el mismo ejercicio de Ja clase Uso_Coche: www redusers.comas JAVA Vol. It mercury.ruedas =3; Si ejecutamos el cédigo anterior, veremos que dara como resultado que el auto posee 3 ruedas. Entonces, {para qué definimos en la clase Auto los atributos si podemos cambiarlos desde cualquier seccién? En este momento, podemos decir que existe informacion a la que llamaremos sensible, que deberd ser encapsulada. En el ejemplo que hemos desarrollado, las ruedas solo se pueden modificar en la clase a la que pertenecen o donde fueron construidas, para ello necesitamos usar los modificadores de acceso, en nuestro caso colocaremos antes de la variable el término private. Veamos ahora qué sucede si modificamos nuestro cédigo y, a todos los atributos, les agregamos private public class Auto { private int ruedas; private int ancho; privat int largo; private int motor; private int peso; Cuando vayamos a la clase Uso Coche, veremos que el codigo nos mostrara un error, es decir, no sera posible acceder al objeto que llamamos. Esto se debe a que hemos encapsulado el dato en la clase Auto y, por lo tanto, no sera visible desde otra clase. Reutilizacian de codigo Una de las formas mas utiles para generar cédigo que sea reutilizable es que cada metodo se limite a realizar una tarea bien definida, y su nombre exprese esa tarea con efectividad, por ejemplo, sumarCuadrados(). Un método que lleva una tarea especifica es mas facil de prabar y depurar que uno més grande y con multiples tareas, Una manera de darse cuenta de que no estamos modularizando correctamente es verificar que no podemos escribir un nombre conciso para un médulo o método. www.redusers.com 43
También podría gustarte
Villalobos, Jorge - Fundamentos de Programacion
PDF
100% (4)
Villalobos, Jorge - Fundamentos de Programacion
378 páginas
Java - Interfaces Graficas y Aplicaciones para Internet 4ta Edicion
PDF
Aún no hay calificaciones
Java - Interfaces Graficas y Aplicaciones para Internet 4ta Edicion
1004 páginas
Java
PDF
100% (7)
Java
564 páginas
Como Programar en Java
PDF
100% (7)
Como Programar en Java
618 páginas
Java para Estudiantes
PDF
70% (10)
Java para Estudiantes
556 páginas
Programador Certificado Java 2 Curso Practico Segunda Edicion RA-MA PDF
PDF
100% (1)
Programador Certificado Java 2 Curso Practico Segunda Edicion RA-MA PDF
610 páginas
JAVA 2-Curso de Programacion - (Javier Ceballos)
PDF
100% (1)
JAVA 2-Curso de Programacion - (Javier Ceballos)
706 páginas
Java 1
PDF
100% (1)
Java 1
113 páginas
Java
PDF
100% (2)
Java
324 páginas
Programacion en Java
PDF
100% (2)
Programacion en Java
267 páginas
Java Desde Cero
PDF
100% (4)
Java Desde Cero
210 páginas
Programación, Algoritmos y Ejercicios Resueltos en Java PDF
PDF
Aún no hay calificaciones
Programación, Algoritmos y Ejercicios Resueltos en Java PDF
426 páginas
Referencia Java
PDF
Aún no hay calificaciones
Referencia Java
2 páginas
XML Anaya Multimedia Natanya Pitts
PDF
Aún no hay calificaciones
XML Anaya Multimedia Natanya Pitts
510 páginas
Programación en Java 2
PDF
100% (9)
Programación en Java 2
426 páginas
Curso de Javascript
PDF
80% (5)
Curso de Javascript
37 páginas
Programador NET
PDF
71% (7)
Programador NET
356 páginas
C++ Como Si Estuvieras en Primero
PDF
100% (4)
C++ Como Si Estuvieras en Primero
87 páginas
Programacion Orientada A Objetos Con C++
PDF
100% (1)
Programacion Orientada A Objetos Con C++
48 páginas
Sesión 02 - Sintaxis de CSharp (C#)
PDF
100% (78)
Sesión 02 - Sintaxis de CSharp (C#)
31 páginas
Fundamentos de JavaScript y AJAX Jose Manuel Alarcon Krasis Press
PDF
86% (7)
Fundamentos de JavaScript y AJAX Jose Manuel Alarcon Krasis Press
40 páginas
Programación Estructurada
PDF
Aún no hay calificaciones
Programación Estructurada
16 páginas
Curso de JSP Basico
PDF
100% (1)
Curso de JSP Basico
46 páginas
Programacion Java Ok
PDF
100% (2)
Programacion Java Ok
103 páginas
Java Desde Cero PDF
PDF
Aún no hay calificaciones
Java Desde Cero PDF
210 páginas
Java Desde Cero PDF
PDF
Aún no hay calificaciones
Java Desde Cero PDF
39 páginas
Transp Are Nci As Java
PDF
Aún no hay calificaciones
Transp Are Nci As Java
236 páginas
TransparenciasJava PDF
PDF
Aún no hay calificaciones
TransparenciasJava PDF
236 páginas
Curso Java Poo
PDF
Aún no hay calificaciones
Curso Java Poo
4 páginas
Curso de Java
PDF
Aún no hay calificaciones
Curso de Java
74 páginas
Curso Básico de Java
PDF
Aún no hay calificaciones
Curso Básico de Java
61 páginas
Contenido de Java
PDF
Aún no hay calificaciones
Contenido de Java
6 páginas
1) Tema 1 - Introduccion A La Compilacion Java y A La Herramienta Netbeans
PDF
Aún no hay calificaciones
1) Tema 1 - Introduccion A La Compilacion Java y A La Herramienta Netbeans
35 páginas
CPJ A Leccion SintaxisBasicaEnJava
PDF
Aún no hay calificaciones
CPJ A Leccion SintaxisBasicaEnJava
5 páginas
Que Es Java
PDF
Aún no hay calificaciones
Que Es Java
12 páginas
T3-2-Guia-ENCAPSULAMIENTO - HERENCIA - POLIMORFISMO
PDF
Aún no hay calificaciones
T3-2-Guia-ENCAPSULAMIENTO - HERENCIA - POLIMORFISMO
7 páginas
Indice Libro Aprender A Programar en Java Desde Cero Curso Pasoapaso
PDF
Aún no hay calificaciones
Indice Libro Aprender A Programar en Java Desde Cero Curso Pasoapaso
9 páginas
U2 Java-1
PDF
Aún no hay calificaciones
U2 Java-1
50 páginas
Java 1
PDF
Aún no hay calificaciones
Java 1
34 páginas
Libro de JAVA
PDF
Aún no hay calificaciones
Libro de JAVA
241 páginas
Java para Principiantes
PDF
Aún no hay calificaciones
Java para Principiantes
1060 páginas
Introduccion A Poo PDF
PDF
Aún no hay calificaciones
Introduccion A Poo PDF
32 páginas
Curso Basico Java
PDF
Aún no hay calificaciones
Curso Basico Java
221 páginas
Apuntes de Curso de Java SE.
PDF
Aún no hay calificaciones
Apuntes de Curso de Java SE.
51 páginas
Piensa en Java 4 Edicion
PDF
80% (5)
Piensa en Java 4 Edicion
990 páginas
Java para Principiantes
PDF
Aún no hay calificaciones
Java para Principiantes
324 páginas
Manual de Java
PDF
98% (53)
Manual de Java
61 páginas
Curso Java
PDF
0% (1)
Curso Java
113 páginas
Resumen Programación II (Lenguaje Java)
PDF
Aún no hay calificaciones
Resumen Programación II (Lenguaje Java)
7 páginas
Programación, Algoritmos y Ejercicios Resueltos en Java
PDF
100% (6)
Programación, Algoritmos y Ejercicios Resueltos en Java
426 páginas
5 - Guía Intro Java
PDF
Aún no hay calificaciones
5 - Guía Intro Java
35 páginas
Apunte - U2 (1) - Fundamentos de Java
PDF
Aún no hay calificaciones
Apunte - U2 (1) - Fundamentos de Java
23 páginas
U2 Java
PDF
Aún no hay calificaciones
U2 Java
50 páginas
Resumen Programación II (Clases)
PDF
Aún no hay calificaciones
Resumen Programación II (Clases)
11 páginas
Guia de Programacion Orientada A Objetos y de Fundamentos de Java
PDF
Aún no hay calificaciones
Guia de Programacion Orientada A Objetos y de Fundamentos de Java
11 páginas
CLASES
PDF
Aún no hay calificaciones
CLASES
31 páginas
Java para Estudiantes
PDF
100% (3)
Java para Estudiantes
531 páginas
Java Usando Netbeans
PDF
Aún no hay calificaciones
Java Usando Netbeans
33 páginas
Introduccion A La Poo
PDF
Aún no hay calificaciones
Introduccion A La Poo
38 páginas
Java para Desarrollo Android
PDF
100% (1)
Java para Desarrollo Android
669 páginas
Ciberataques Dirigidos PDF
PDF
Aún no hay calificaciones
Ciberataques Dirigidos PDF
5 páginas
Estafa Principa Nigeriano
PDF
Aún no hay calificaciones
Estafa Principa Nigeriano
14 páginas
Vice N TTFM 0118 Memoria
PDF
Aún no hay calificaciones
Vice N TTFM 0118 Memoria
36 páginas
AF Daikin PL - B 60 HZ - ES Web PDF
PDF
Aún no hay calificaciones
AF Daikin PL - B 60 HZ - ES Web PDF
2 páginas
Brochure Seguridad de La Informacion
PDF
Aún no hay calificaciones
Brochure Seguridad de La Informacion
1 página