Seguir este blog
Edit post Administration Create my blog
19 junio 2009 5 19 /06 /junio /2009 03:51
  Constructores

Un Constructor  es una función, método, etc,  de las clases, la cual es llamada automáticamente cuando se crea un objeto de esa clase.

Por ser métodos, los constructores también aceptan parámetros. Cuando en una clase no especificamos ningún tipo de constructor, el compilador añade uno público por omisión sin parámetros, el cual NO hace nada.

Características de los Constructores

1.     Un constructor, tiene el mismo nombre de la clase a la cual pertenece.

2.     No puede ser Heredado.

3.     No retorna ningún valor (Ni void), por lo cual no debe especificarse ningún tipo de dato.

4.     Debe declararse como public, sólo en casos realmente extraordinarios será de otro tipo.

Supongamos una clase llamada Datos

public class Datos
{
  
//declaracion de atributos
            public Datos();//constructor sin parametros
            public Datos(int Edad)
            {
//Constructor con parámetros
               EdadM=Edad;
            }
}

Ejemplo.

Se Desea crear un objeto del tipo Coordenadas, que indique, la posición de un punto en el plano cartesiano, y permita calcular la distancia existente con otro punto, además del punto medio entre ellos.

1 /*Archivo Coordenadas.java*/
 2
 3
public class Coordenadas {
 4        private int x,y;//Atributos
 5                      public Coordenadas (int x1 , int y1)//constructor
 6                      {
 7                         //asignamos esos valores
 8                                  x=x1;
 9                                  y=y1;
10                     }
11                     public double Distancia (int x1, int y1)
12                     {
13                         //este método recibe como parametros
14                                  //las coordenadas del segundo punto
15                         double D;
16                                  D=Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
17                                  return D;//Retornamops el valor de la distancia
18                    }
19                    public void Pmedio(int x1, int y1)
20                    {
21                        double p1, p2;
22                                 p1=(x+x1)/2;
23                                 p2=(y+y1)/2;
24                                 System.out.println("El puntomedio es: "+p1+","+p2);
25                    }
26        }

 

1 /*Archivo UsaCoordenadas.java*/
 2 public class UsaCoordenadas {
 3 public static void main (String args []){
 4      Coordenadas P=new Coordenadas (10,20);
 5           //calculamos la Distancia:
 6           System.out.println("La Distancia es: "+P.Distancia(5,6));
 7           //Punto Medio
 8           P.Pmedio(5,6);
 9          }
10 }

Explicación:

Un método, si va a devolver algún valor, éste debe especificarse cuando se hace la definición del mismo, para el caso, el método Distancia, devuelve el valor de la distancia, es por ello que lo especificamos como public double. Además que, cuando realizamos la llamada de  ese método, es en ese preciso lugar que aparecerá el valor que devuelve. Por otra parte,  los atributos, son de acceso privado, lo cual implica que, sólo podemos acceder a ellos,  en la clase Coordenadas.

        Sobrecarga

Cuando en una clase, se definen un mismo método, con diferente número de parámetros, o bien con el mismo numero de parámetros pero diferenciándose en la definición, en la cual, al menos un parámetro sea de diferente tipo, cuando esto sucede, se dice que el método está sobrecargado.

Ejemplo.

Cree una aplicación en Java, que imprima un número imaginario. Nota, los números imaginarios, poseen una parte real y otra imaginaria, acompañada por la constante i.

 1 class Imaginario {
 2    private int real, imag;
 3         public Imaginario()
 4         {
 5             real=0;
 6                      imag=0;
 7         }
 8         public Imaginario(int x, int y)
 9         {
10           real=x;
11                    imag=y;
12        }
13        public void Mostrar()
14        {
15           System.out.println("El Numero Imaginario es: "+real+" + "+imag+"i");
16        }
17 }

 

1 class UsaImaginario{
2 public static void main (String args []) {
3    Imaginario oI=new Imaginario(5,6);
4          oI.Mostrar();
5 }
6 }

Explicación.

En el ejemplo anterior puede notar que, los atributos, son esas variables simples, es las cuales almacenaremos información relevante a los objetos que, crearemos a partir de esa clase.

Además que, los estamos declarando como públicos, lo cual indica que tenemos acceso directo desde cualquier otro archivo a los atributos. Los métodos son del tipo public  y no devuelven ningún valor, por tal razón son declarados como void. Además que. El método EstablecerEdad y EstablecerNota, reciben un argumento cada uno de ellos, el cual es asignado al respectivo atributo.

        Constructores

Un Constructor  es una función, método, etc,  de las clases, la cual es llamada automáticamente cuando se crea un objeto de esa clase.

Por ser métodos, los constructores también aceptan parámetros. Cuando en una clase no especificamos ningún tipo de constructor, el compilador añade uno público por omisión sin parámetros, el cual NO hace nada.

Características de los Constructores

1.     Un constructor, tiene el mismo nombre de la clase a la cual pertenece.

2.     No puede ser Heredado.

3.     No retorna ningún valor (Ni void), por lo cual no debe especificarse ningún tipo de dato.

4.     Debe declararse como public, sólo en casos realmente extraordinarios será de otro tipo.

Supongamos una clase llamada Datos

public class Datos
{
  
//declaracion de atributos
            public Datos();//constructor sin parametros
            public Datos(int Edad)
            {
//Constructor con parámetros
               EdadM=Edad;
            }
}

Ejemplo 7.2

Se Desea crear un objeto del tipo Coordenadas, que indique, la posición de un punto en el plano cartesiano, y permita calcular la distancia existente con otro punto, además del punto medio entre ellos.

1 /*Archivo Coordenadas.java*/
 2
 3
public class Coordenadas {
 4        private int x,y;//Atributos
 5                      public Coordenadas (int x1 , int y1)//constructor
 6                      {
 7                         //asignamos esos valores
 8                                  x=x1;
 9                                  y=y1;
10                     }
11                     public double Distancia (int x1, int y1)
12                     {
13                         //este método recibe como parametros
14                                  //las coordenadas del segundo punto
15                         double D;
16                                  D=Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
17                                  return D;//Retornamops el valor de la distancia
18                    }
19                    public void Pmedio(int x1, int y1)
20                    {
21                        double p1, p2;
22                                 p1=(x+x1)/2;
23                                 p2=(y+y1)/2;
24                                 System.out.println("El puntomedio es: "+p1+","+p2);
25                    }
26        }

 

1 /*Archivo UsaCoordenadas.java*/
 2 public class UsaCoordenadas {
 3 public static void main (String args []){
 4      Coordenadas P=new Coordenadas (10,20);
 5           //calculamos la Distancia:
 6           System.out.println("La Distancia es: "+P.Distancia(5,6));
 7           //Punto Medio
 8           P.Pmedio(5,6);
 9          }
10 }

Explicación:

Un método, si va a devolver algún valor, éste debe especificarse cuando se hace la definición del mismo, para el caso, el método Distancia, devuelve el valor de la distancia, es por ello que lo especificamos como public double. Además que, cuando realizamos la llamada de  ese método, es en ese preciso lugar que aparecerá el valor que devuelve. Por otra parte,  los atributos, son de acceso privado, lo cual implica que, sólo podemos acceder a ellos,  en la clase Coordenadas.

        Sobrecarga

Cuando en una clase, se definen un mismo método, con diferente número de parámetros, o bien con el mismo numero de parámetros pero diferenciándose en la definición, en la cual, al menos un parámetro sea de diferente tipo, cuando esto sucede, se dice que el método está sobrecargado.

Ejemplo.

Cree una aplicación en Java, que imprima un número imaginario. Nota, los números imaginarios, poseen una parte real y otra imaginaria, acompañada por la constante i.

 1 class Imaginario {
 2    private int real, imag;
 3         public Imaginario()
 4         {
 5             real=0;
 6                      imag=0;
 7         }
 8         public Imaginario(int x, int y)
 9         {
10           real=x;
11                    imag=y;
12        }
13        public void Mostrar()
14        {
15           System.out.println("El Numero Imaginario es: "+real+" + "+imag+"i");
16        }
17 }

 

1 class UsaImaginario{
2 public static void main (String args []) {
3    Imaginario oI=new Imaginario(5,6);
4          oI.Mostrar();
5 }
6 }

Compartir este post

Published by Prof. Luis E. Aponte I.
Comenta este artículo

Comentarios

jose alberto 05/16/2014 09:58

Una pregunta... si tengo un constructor que recibe un objeto, como hago para inicializarlo y como le paso el objeto cuando creo un objeto de la clase con el constructor que recibe otro objeto. No c
si me explico.
Supongamos que tengo una clase Autor en el cual su constructor recibe tres parametros la cual es el nombre, el apellido y el año de nacimiento, y tengo los metodos de get, en otra clase Libro, su
constructor recibe tres parametros y uno de ellos es un objeto de la clase Autor asi:
public Libro(String nombre, Autor autor, double precio). y no c como inicializar autor en ese constructor y en el main no c como pasar el onjeto de Autor a Libro para que pueda yo imprimir los
datos de un libro.

Iván 05/29/2013 18:58

Me gustaría hacer una aclaración y si no es correcta que se me corrija. En el primer párrafo se explica que "si no se pone ningún constructor el compilador añade uno PÚBLICO por defecto". No estoy
de acuerdo, pues si la clase tiene acceso "default" el constructor por defecto no será "public" sino "default". Muchas gracias.

A 04/26/2011 11:48


Un buen comentario, claro y conciso para aclarar los conceptos que vienen aquí explicados. También contiene buenos ejemplos.


Juan Gutiérrez 05/22/2010 03:57


Profee... ¿Cuando pondrá los Ejercicios resuelto de interfaz de usuario quiero estudiar? !!! Mandemelo a mi correo por favor...


Linda Marìn Zapata 11/11/2009 14:56


Excelentes explicaciones y ejemplo muy claros. Gracias me sirvieron mucho para poder hacer ejercicios en la clase de java que tomo a distancia por el SENA