12.07.2015 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!