150 likes | 325 Views
INGENIERIA EN SISTEMAS COMPUTACIONALES. ASIGNATURA: PROGRAMACION ORIENTADA A OBJETOS. INTEGRANTES: MAGALY SALAZAR GARCIA STEPHANNIE RODRIGUEZ BATUN JAVIER MARTINEZ MARTINEZ. SOBRECARGA DE METODOS . Es una de las formas en que Java implementa el polimorfismo.
E N D
INGENIERIA EN SISTEMAS COMPUTACIONALES ASIGNATURA: PROGRAMACION ORIENTADA A OBJETOS INTEGRANTES: MAGALY SALAZAR GARCIA STEPHANNIE RODRIGUEZ BATUN JAVIER MARTINEZ MARTINEZ
SOBRECARGA DE METODOS • Es una de las formas en que Java implementa el polimorfismo. • Es un mecanismo muy útil que permite definir en una clase varios métodos con el mismo nombre.
Para que el compilador pueda determinar a que método nos referimos en un momento dado, los parámetros de los métodos sobrecargados no pueden ser idénticos. • En algunos casos se puede aplicar la conversión automática de tipos Java
EJEMPLO: • Para establecer las dimensiones de un objeto (anchura, profundidad, altura) en una medida dada podemos definir los métodos: • Dimensiones(double Ancho, double Alto, double Profundo, String Medida) • Dimensiones( String Medida, double Ancho, double Alto, double Profundo) • Dimensiones(double Ancho, String Medida, double Alto, double Profundo) • Dimensiones(double Ancho, double Alto, String Medida, double Profundo)
Cuando realicemos una llamada al método Dimensiones(…), el compilador podrá determinar a cual de los métodos nos referimos por la posición del parámetro de tipo String.
Un método se determina por su firma. • La firma se compone del nombre del método, numero de parámetros y tipo de parámetros (por orden de colocación). • De los 5 métodos sobrecargados anteriores, el primero y el ultimo presentan la misma firma, por lo que el compilador generará un error al compilar la clase.
Los métodos sobrecargados pueden contener distinto numero de parámetros: • Dimensiones( String Medida) • Dimensiones(double Ancho, double Alto, double Profundo).
En las líneas : • prívate double X = 0d • prívate double Y= 0d • prívate double Z= 0d • prívate String Tipo Medida= “centímetro” • Se declaran y definen valores iníciales para las propiedades privadas X,Y,Z, TipoMedida.
En las líneas: • Public void Dimensiones3D(double Ancho, double Alto, double Profundo){ • Se define el método Dimensiones3D , que permite asignar valores a las tres dimensiones espaciales de un objeto. • Public void TipoMedida(String Medida){ • Se define el método TipoMedida, que permite asignar un valor a la propiedad del mismo nombre.
En la línea • public void Dimensiones(double Ancho, double Alto, double Profundo, String Medida) • Define el primer método del grupo de 6 métodos sobrecargados Dimensiones. Los tres métodos Dimensiones siguientes simplemente hacen una llamada al primero, ordenando adecuadamente los argumentos de la invocación.
Los últimos 4 métodos : • DimeAlto • DimeAncho • DimeProfundo • DimeMedida • Nos permiten conocer los valores de las propiedades de la clase, aumentando la funcionalidad de la clase Objetos3D.
CLASE OBJETOS3D • En las líneas: • Objeto3D Caja= new Objeto3D(); • Objeto3D Esfera= new Objeto3D(); • Objeto3D Bicicleta = new Objeto3D(); • Se declaran y definen tres instancias de la clase Objeto3D.
En las líneas: • Caja.Dimensiones(20.0,12.5,30.2,”centimetros”); • Esfera.Dimensiones(10.0,”pulgadas”,10.0,10.0); • Bicicleta.Dimensiones(90.0,30.0,20.0); • Se invocan diversas ocurrencias del método sobrecargado Dimensiones. Como en la instancia Bicicleta no se define el tipo de sus medidas, prevalece “centímetro” que ha sido asignada en la instrucción : • Objeto3D Bicicleta = new Objeto3D();
Las líneas: • System.out.println( Bicicleta.DimeMedida() ); • System.out.println( Bicicleta.DimeAlto() ); • Imprimen la medida y la altura de la instancia Bicicleta. • En la línea • Bicicleta.Dimesiones(“pulgadas”); • Se varia el tipo de medida empleada, lo que se reflejara en la línea: • System.out.println( DimeMedida() );