Está en la página 1de 20

CONSTRUCTOR

Qu es un constructor ?
Un constructor es un mtodo especial de una
clase que se llama automticamente siempre
que se declara un objeto de esa clase.
La principal misin del constructor es reservar
memoria e inicializar las
variables miembros de la clase.

Qu es un constructor ?
El constructor se llama automticamente
cuando se crea una instancia de la clase.
Por ejemplo:
Taxi t1 =new Taxi() ; // llama al constructor sin argumentos
Taxi t2=new Taxi("XYZ 111","Fontibon",1);

Qu es un constructor ?
El constructor es un mtodo de la clase, tiene
el mismo nombre de la clase y no tiene tipo
de retorno.
Formato general:
NombleClase(lista de argumentos)
{
...
}

El constructor puede estar sobrecargado, es


decir, mas de un constructor con distintos
argumentos.

Caractersticas del constructor


1. Debe tener el mismo nombre que la clase a la que
pertenece.
2. En una clase puede haber varios constructores con
el mismo nombre y con distinta cantidad o tipos de
argumentos. Es decir permite sobrecarga.
3. Los constructores no se heredan.
4. Un constructor no puede devolver ningn valor
incluyendo el void.
5. Un constructor debera declararse publico, para que
pueda ser invocado desde cualquier parte donde se
desee crear un objeto de su clase.
6. Es el primer mtodo que se ejecuta.
7. Se ejecuta de forma automtica.

Bob el constructor
Los constructores tienen las
herramientas, atributos o
instancias necesarias para
hacer su tarea de construir.
Atributos o
variables
instancia.

Con parmetros

Constructor 1

Constructor 2

Se ejecuta el
constructor necesario
de acuerdo a la tarea
a realizar.

Se requeria de
otro constructor
para la fachada.

Clase
Casa

Constructor 1

La puerta puede ser un set


o get para la clase Casa.
Set cuando con la llave
correcta se ingresa o
establece elementos en la
casa. Get cuando se toca
a la puerta y le dan permiso
para sacar u obtener
elementos de la casa.

Constructor 2

Constructor Java por


1. Si para una clase no se define ningn
mtodo constructor se crea uno
automticamente por defecto.
2. El constructor por defecto es un
constructor sin parmetros que no hace
nada. Los atributos del objeto son iniciados
con los valores predeterminados por el
sistema.
3. Este tipo de constructor se lo llama como
constructor no-args, ya que no recibe
parmetros.

Tipos de datos:
Valores por
Realice el ejempo en Netbeans de la siguiente fuente:
http://codigomaldito.blogspot.com.co/2008/06/valorespor-defecto-en-java.html

Punto adicional: Agregue a este cdigo el tipo de dato


objeto String y que pueda imprimir su valor por defecto
que es null.
Para mayor informacin consulte:
1.

2.

http://aprenderaprogramar.com/index.php?option=com_content&view=ar
ticle&id=419:tipos-de-datos-java-tipos-primitivos-int-boolean-y-objeto-stringarray-o-arreglo-variables-cu00621b&catid=68:curso-aprenderprogramacion-java-desde-cero&Itemid=188
http://codehero.co/java-desde-cero-tipos-de-datos/

Ejemplo:
Constructor Java por
Ejemplo 1:

Ejemplo 2:

La llamada al constructor
por default.

1. Una clase con el constructor por defecto, es


decir, sin declarar el constructor.
2. No se ha definido ningn constructor, por lo que
al declarar un objeto el compilador utilizar un
constructor por defecto. *Observe Ejemplo 2.
3. En este caso el mtodo constructor por defecto
es: Persona(){ } *Observe Ejemplo 1.

Ejemplo:
Constructor Java

La llamada al
constructor por
sobrecarga.
Se puede apreciar
el constructor Persona() y su
sobre carga, el constructor
Persona(String nombre).

Ejemplo:

Caso diagrama de clase con constructor


Realice el ejemplo en Netbean:

Se realiza la clase
principal y la clase
llamada Cuenta que
se muestra en el
diagrama de clases.

El atributo saldo es
privado. En los
mtodos se modela
el nombre del
constructor con un
parmetro double. Se
realiza un mtodo
abonar que recibe un
valor double. Luego
hace una
encapsulacin con
obtenerSaldo y
retorna el valor
double.

Ejemplo:

Caso diagrama de clase con constructor


Situacin:
Una clase llamada Cuenta, la cual mantiene el saldo de una cuenta bancaria. Un banco
ordinario da servicio a muchas cuentas, cada una con su propio saldo, por lo que se declara
una variable de instancia, de tipo double, llamada saldo.
La variable saldo es
, ya que est declarada en
el cuerpo de la clase pero fuera de
las declaraciones de los mtodos de
la misma. Cada instancia (objeto)
de la clase Cuenta contiene su
propia copia de saldo.

La clase Cuenta con


un constructor para
validar e inicializar la
variable de instancia
saldo.

Ejemplo:

Caso diagrama de clase con constructor


La clase tiene un constructor y dos
mtodos.
Debido a que es comn que alguien
abra una cuenta para depositar
dinero de inmediato, el constructor
recibe un parmetro llamado
saldolnicial de tipo double, el cual
representa el saldo inicial de la
cuenta. Luego se aseguran que saldo
Inicial sea mayor que 0.0.
De ser as, el valor de saldoInicial se
asigna a la variable de instancia
saldo.
En caso contrario, saldo permanece
en 0.0, su valor inicial predeterminado.
El mtodo abonar no devuelve datos
cuando completa su tarea, por lo que
su tipo de valor de retorno es void.
El mtodo recibe un parmetro llamado
monto: un valor double que se sumar
al saldo. La lnea 25 de suma monto al
valor actual de saldo, y despus asigna
el resultado a saldo (con lo cual se
sustituye el monto del saldo anterior).

Ejemplo:

Caso diagrama de clase con constructor

El mtodo obtenerSaldo permite a


los clientes de la clase (otras clases
que utilicen esta clase) obtener el
valor del saldo de un objeto Cuenta
especfico. El mtodo especifica el
tipo de valor de retorno double y
una lista de parmetros vaca.
Observe una vez ms que las instrucciones en las lneas 13, 20 y 25 utilizan la variable de
instancia saldo, an y cuando no se declar en ninguno de los mtodos. Podemos usar
saldo en estos mtodos, ya que es una
de la clase.

La clase PruebaCuenta crea dos objetos Cuenta (lneas


22 y 25) y los inicializa con 50.07 y 600.7, respectivamente.
Las lneas 27 y 28 imprimen el saldo en cada objeto
Cuenta mediante una llamada al mtodo obtenerSaldo
de Cuenta.

La lnea 32 declara la variable local montoDeposito para


almacenar cada monto de depsito introducido por el
usuario. A diferencia de la variable de instancia saldo en
la clase Cuenta, la variable local montoDeposito en
main no se inicializa con 0.0 de manera predeterminada.
Sin embargo, esta variable no necesita inicializarse aqu,
ya que su valor se determinar con base a la entrada
del usuario.
La lnea 23 pide al usuario que escriba un monto a
depositar para cuenta 1.

La lnea 36 obtiene la entrada del usuario, llamando al


mtodo nextDouble del objeto Scanner llamado
entrada, el cual devuelve un valor double introducido
por el usuario. Las lneas 38 muestra el monto del
depsito.

La lnea 49 pide al usuario que escriba un monto a


depositar para cuenta2. La lnea 50 obtiene la entrada
del usuario, para lo cual invoca al mtodo nextDouble
del objeto Scanner llamado entrada.

Las lnea 51 muestran el monto del depsito. La lnea 52


llama al mtodo abonar del objeto cuenta2 y le
suministra montoDeposito como argumento; despus, el
mtodo abonar suma ese valor al saldo. Por ltimo, las
lneas 57 y 58 imprimen en pantalla los saldos de ambos
objetos Cuenta otra vez.

Relacione conocimientos
Investigue y concluya:

1. Existe diferencia entre argumentos y


parmetros en Java o en general en
programacin?
2. Los contructores tienen parmetros?
3. Qu tipos de constructores existen?

Consulte las referencias


1. https://www.youtube.com/watch?v=LNDd
OTTPoO4
2. http://java-whitebox.blogspot.com.co/2013/12/javaplayerconstructores-en-java-que-es.html
3. http://www.discoduroderoer.es/ejerciciospropuestos-y-resueltos-programacionorientado-a-objetos-java/

GRACIAS

Presentado por: Anglica Triana.