Desarrollo de proyectos informáticos con tecnologÃa Java
Desarrollo de proyectos informáticos con tecnologÃa Java
Desarrollo de proyectos informáticos con tecnologÃa Java
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
28CAPÍTULO 2. CLASESDe modo análogo, po<strong>de</strong>mos añadir a la clase Persona dos nuevos métodospara po<strong>de</strong>r modificar el valor <strong>de</strong> los atributos nombre y apellidos, tal y comose muestra a <strong>con</strong>tinuación:1 void setNombre ( S t r i n g nuevoNombre ) {2 nombre = nuevoNombre ;3 }45 void s e t A p e l l i d o s ( S t r i n g n u e v o s A p e l l i d o s ) {6 a p e l l i d o s = n u e v o s A p e l l i d o s ;7 }Listado 2.3: Métodos para modificar el nombre y los apellidos <strong>de</strong> una PersonaYa tenemos escritos métodos que nos permiten leer y modificar los atributos<strong>de</strong> la clase Persona. Ahora queremos crear ejemplares <strong>de</strong> esta clase, para ellonecesitamos escribir métodos especiales que nos sirvan para crear instancias <strong>de</strong>la clase, a estos métodos especiales se les llama <strong>con</strong>structores <strong>de</strong> la clase.2.2.3. Constructores.Para crear un ejemplar <strong>de</strong> una clase utilizamos métodos especiales llamados<strong>con</strong>structores <strong>de</strong> la clase. En las siguientes líneas <strong>de</strong> código se muestra cómo se<strong>de</strong>fine un <strong>con</strong>structor <strong>de</strong> la clase Persona:1 Persona ( S t r i n g nombre , S t r i n g a p e l l i d o s , S t r i n g t e l e f o n o ) {2 t h i s . nombre = nombre ;3 t h i s . a p e l l i d o s = a p e l l i d o s ;4 t h i s . t e l e f o n o = t e l e f o n o ;5 }Listado 2.4: Constructor <strong>con</strong> parámetros <strong>de</strong> la clase PersonaVolvemos a tener nuevos <strong>con</strong>ceptos en estas líneas <strong>de</strong> código, veámoslo:1. Un <strong>con</strong>structor es un método cuyo nombre coinci<strong>de</strong> <strong>con</strong> el <strong>de</strong> la clase,en nuestro caso el nombre <strong>de</strong>l método es Persona que es precisamente elnombre <strong>de</strong> la clase.2. Como cualquier otro método, tiene un lista <strong>de</strong> argumentos que en estecaso no está vacía, si no que indica que va a recibir tres argumentos y lostres <strong>de</strong> tipo String.3. Fíjate que los nombres <strong>de</strong> los tres argumentos coinci<strong>de</strong>n <strong>con</strong> los nombres <strong>de</strong>los atributos; la clase tiene <strong>de</strong>clarado un atributo <strong>de</strong> tipo String llamadonombre y el primer argumento <strong>de</strong>l <strong>con</strong>structor también se llama nombrey es <strong>de</strong> tipo String. ¿Cómo resolvemos la ambigüedad entre el nombre<strong>de</strong>l atributo y el nombre <strong>de</strong>l argumento?, utilizando la palabra reservadathis; si escribimos this.nombre estamos haciendo referencia al atributo,si sólo escribimos nombre, estamos haciendo referencia al argumento <strong>de</strong>lmétodo. Veremos <strong>con</strong> más <strong>de</strong>talle el significado <strong>de</strong> la palabra reservadathis en la sección 2.3.4. Un <strong>con</strong>structor no <strong>de</strong>vuelve ningún valor <strong>de</strong> retorno, ya que estos métodosespeciales nos sirven para crear objetos.