SlideShare una empresa de Scribd logo
1 de 9
INSTITUTO TECNOLÓGICO SUPERIOR DE
MARTÍNEZ DE LA TORRE
INGENIERÍA MECATRÓNICA
Materia: Programación Avanzada
Catedrático: MRYSI. Ángel Salas
Martínez
Tema 2
Alumno: Aristenes Rojas Rendón
Número de Control: 160I0325
Lugar y Fecha: Martínez de la Torre, Ver.
21 de Marzo del 2021.
Contenido
Introducción............................................................................................3
Constructores y destructores declaración, uso y aplicaciones..........4
Constructor ..........................................................................................4
La destrucción por defecto: Recogida de basura.............................5
sobre carga de métodos ........................................................................5
Cómo invocar un método sobrecargado: .........................................6
sobrecarga de operaciones ...................................................................6
Operadores Unarios ............................................................................7
Operadores binarios............................................................................8
Conclusión...............................................................................................9
Bibliografía ..............................................................................................9
Introducción
La programación orientada a objetos (POO) es una nueva forma de pensar, una
manera distinta de enfocar y descomponer los problemas para desarrollar y
proponer soluciones de programación. Actualmente, es una de las formas más
populares de programar y viene teniendo gran aceptación en el desarrollo de
proyectos de software desde los últimos años. Esta aceptación se debe a sus
grandes capacidades y ventajas frente a las antiguas formas de programar.
Teniendo en cuenta lo anterior, es indispensable que toda persona que vaya a
desarrollar aplicaciones orientadas a objetos aprenda primero la fundamentación y
después el lenguaje de programación; ya que existen diferentes lenguajes que
permiten su implementación y contienen sintaxis particulares.
Constructores y destructores declaración, uso y
aplicaciones
Para crear un objeto se necesita reservar suficiente espacio en memoria e
inicializar los valores de los campos que representan el estado del objeto. Este
trabajo es realizado por un tipo especial de método denominado constructor.
Constructor
Un método constructor de una clase es un método especial que: tiene el mismo
nombre que la clase y no tiene tipo de retorno. La sintaxis para la declaración de
un método constructor es:
[atributos] [modificadores] <identificador> ( [parámetros] ) [inicializador]
{
// Cuerpo del constructor.
}
Donde: atributos (opcional) es información declarativa adicional, modificadores
(opcional) se restringen a extern y a los modificadores de acceso, identificador es
el nombre del método constructor (igual al nombre de la clase), parámetros
(opcional) es la lista de parámetros pasados al constructor, inicializador (opcional).
Con el inicializador, el constructor invoca previamente a otro constructor.
El inicializador puede ser uno de los siguientes: base([listaDeParámetros])
this([listaDeParámetros])
Cuerpo del constructor es el bloque de programa que contiene las instrucciones
para inicializar la instancia de clase (objeto).
Destructor
La sintaxis para declarar un destructor es:
[Atributos] ~ <Identificador> ( )
{
// Cuerpo del destructor.
}
Una clase solamente puede tener un destructor. Los destructores no pueden
heredarse o sobrecargarse, los destructores no pueden invocarse, sino que son
invocados automáticamente, un destructor no acepta modificadores ni
parámetros, por ejemplo, la siguiente es una declaración de un destructor para la
clase Figura:
~ Figura()
{
// Instrucciones para limpiar.
}
La destrucción por defecto: Recogida de basura
El intérprete de Java posee un sistema de recogida de basura, que por lo general
permite que no nos preocupemos de liberar la memoria asignada explícitamente.
El recolector de basura será el encargado de liberar una zona de memoria
dinámica que había sido reservada mediante el operador new, cuando el objeto
ya no va a ser utilizado más durante el programa (por ejemplo, sale del ámbito de
utilización, o no es referenciado nuevamente).
El sistema de recogida de basura se ejecuta periódicamente, buscando objetos
que ya no estén referenciados.
sobre carga de métodos
Un método sobrecargado se utiliza para reutilizar el nombre de un método,
pero con diferentes argumentos (opcionalmente un tipo diferente de retorno).
Las reglas para sobrecargar un método son las siguientes:
 Los métodos sobrecargados deben de cambiar la lista de argumentos.
 Pueden cambiar el tipo de retorno.
 Pueden cambiar el modificador de acceso.
 Pueden declarar nuevas o más amplias excepciones.
 Un método puede ser sobrecargado en la misma clase o en una
subclase.
Veamos un método que se desea sobrecargar:
public void cambiarTamano(int tamano, String nombre, float
patron){ }
Los siguientes métodos son sobrecargas legales del método
cambiarTamano():
public void cambiarTamano(int tamano, String nombre){}
public int cambiarTamano(int tamano, float patron){}
public void cambiarTamano(float patron, String nombre) throws
IOException{}
Cómo invocar un método sobrecargado:
Lo que define qué método es el que se va a llamar son los argumentos que se
envían al mismo durante la llamada. Si se invoca a un método con un String como
argumento, se ejecutará el método que tome un String como argumento, si se
manda a llamar al mismo método, pero con un float como argumento, se ejecutará
el método que tome un float como argumento y así sucesivamente. Si se invoca a
un método con un argumento que no es definido en ninguna de las versiones
sobrecargadas entonces el compilador arrojará un mensaje de error.
Reglas de la sobrecarga y sobreescritura de métodos:
Ahora que hemos visto ambas formas de reescribir métodos, revisemos las reglas
y diferencias entre ambos tipos de reescritura:
 Argumentos: En un método sobrecargado los argumentos deben de cambiar
mientras que en un método sobrescrito NO deben cambiar.
 El tipo de retorno: En un método sobrecargado el tipo de retorno puede
cambiar, en un método sobrescrito NO puede cambiar, excepto por subtipos
del tipo declarado originalmente.
 Excepciones: En un método sobrecargado las excepciones pueden
cambiar, en un método sobrescrito pueden reducirse o eliminarse, pero NO
deben de arrojarse excepciones nuevas o más amplias.
 Acceso: En un método sobrecargado puede cambiar, en un método
sobrescrito el acceso NO debe de hacerse más restrictivo (puede ser menos
restrictivo).
 Al invocar: En un método sobrecargado los argumentos son los que
determinan qué método es el que se invocará, en un método sobrescrito el
tipo de objeto determina qué método es elegido.
sobrecarga de operaciones
La sobrecarga de operadores es la capacidad para transformar los operadores de
un lenguaje como por ejemplo el +, -, etc., cuando se dice transformar se refiere
a que los operandos que entran en juego no tienen que ser los que admite el
lenguaje por defecto. Mediante esta técnica podemos sumar dos objetos creados
por nosotros o un objeto y un entero, en vez de limitarnos a sumar números
enteros o reales, por ejemplo.
La sobrecarga de operadores ya era posible en c++ y en otros lenguajes, pero
sorprendentemente java no lo incorpora, así que podemos decir que esta
característica es una ventaja de c# respecto a java, aunque mucha gente, esta
posibilidad, no lo considera una ventaja porque complica el código.
A la hora de hablar de operadores vamos a distinguir entre dos tipos, los unarios
y los binarios. Los unarios son aquellos que solo requieren un operando, por
ejemplo, a++, en este caso el operando es 'a' y el operador '++'. Los operadores
binarios son aquellos que necesitan dos operadores, por ejemplo, a+c, ahora el
operador es '+' y los operandos 'a' y 'c'. Es importante esta distinción ya que la
programación se hará de forma diferente.
Los operadores que podemos sobrecargar son los unarios, +, -, !, ~, ++, --; y los
binarios +, -, *, /, %, &, |, ^, <<, >>. Es importante decir que los operadores de
comparación, ==, !=, <, >, <=, >=, se pueden sobrecargar pero con la condición
que siempre se sobrecargue el complementario, es decir, si sobrecargamos el ==
debemos sobrecargar el !=
Operadores Unarios
En esta sección se verá cómo sobrecargar los operadores unarios, es decir
aquellos que toman un solo operando, como por ejemplo a++. El prototipo de los
métodos que van a sobrecargar operadores unarios será:
public static Operando operator++(Operando a)
Como antes sustituyendo el ++ por cualquier operador unario. El ejemplo dentro
de nuestra clase de números complejos sería:
public static ComplexNum operator++(ComplexNum a)
{
float auximg = a.Img;
float auxreal = a.Real;
return new ComplexNum(++auxreal, ++auximg);
}
Operadores binarios
Para empezar, vamos a sobrecargar el operador suma ('+') para que al sumar dos
objetos de la clase ComplexNum, es decir dos números complejos obtengamos
un número complejo que será la suma de ambas partes. Cabe destacar que los
prototipos para sobrecargar operadores serán:
public static Operando operator+(Operando a, Operando b)
Este es el prototipo para el operador +, el resto de los operadores binarios van a
seguir el mismo patrón. Por tanto, el código del método de sobrecarga será el
siguiente:
public static ComplexNum operator+(ComplexNum a, ComplexNum b)
{
return new ComplexNum(a.Real + b.Real, a.Img + b.Img);
}
Este método sobrecarga el operador suma para que podamos sumar dos números
complejos. Un dato a tener en cuenta es que los métodos que sobrecargan
operadores deben ser static. Como se ve en el código los operandos son 'a' y 'b',
que se reciben como parámetro y el resultado de la operación es otro número
complejo que es el que retorna el método. Por tanto, se limita a crear un nuevo
número complejo con ambas partes operadas. De la misma forma podemos crear
la sobrecarga del operador resta ('-') para que lleve a cabo la misma función:
public static ComplexNum operator-(ComplexNum a, ComplexNum b)
{
return new ComplexNum(a.Real - b.Real, a.Img - b.Img);
}
Como vemos el método es idéntico solo que sustituyendo los + por -. En este caso
el trabajo que hacemos dentro del método es trivial, pero podría ser tan complejo
como se quisiera.
Conclusión
Siempre debemos utilizar un constructor para todas nuestras clases. Nos
permiten disponer de un lugar específico para inicializar nuestras variables y
atributos, y crean restricciones que mejoran la seguridad en nuestra programación
Bibliografía
DEITEL, P. J. (2008). Como programaren JAVA. Mexico:PEARSON Prentice Hall.

Más contenido relacionado

La actualidad más candente

Normalización 1 fn,2fn,3fn,4fn,
Normalización 1 fn,2fn,3fn,4fn,Normalización 1 fn,2fn,3fn,4fn,
Normalización 1 fn,2fn,3fn,4fn,GQ Vargas
 
Sistemas variantes en el tiempo
Sistemas variantes en el tiempoSistemas variantes en el tiempo
Sistemas variantes en el tiempoSamyKharuf1
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datospepelebu1313
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficaciónAndhy H Palma
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLCindy Adriana Bohórquez Santana
 
Evaluación de expresiones - Método divide y vencerás
Evaluación de expresiones - Método divide y vencerás Evaluación de expresiones - Método divide y vencerás
Evaluación de expresiones - Método divide y vencerás lensen
 
6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a ObjetosJose Emilio Labra Gayo
 
Tipos de control de flujo
Tipos de control  de flujoTipos de control  de flujo
Tipos de control de flujoFernando Luz
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
Control de velocidad de un motor CC: NI Labview
Control de velocidad de un motor CC: NI LabviewControl de velocidad de un motor CC: NI Labview
Control de velocidad de un motor CC: NI LabviewUnai Martinez
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacionalomarzon
 
Instituto tecnológico de villahermosa
Instituto tecnológico de villahermosaInstituto tecnológico de villahermosa
Instituto tecnológico de villahermosaWilliams Caraveo
 
Administración de mantenimiento
Administración de mantenimientoAdministración de mantenimiento
Administración de mantenimientoluz lopez
 

La actualidad más candente (20)

Recursividad
RecursividadRecursividad
Recursividad
 
Normalización 1 fn,2fn,3fn,4fn,
Normalización 1 fn,2fn,3fn,4fn,Normalización 1 fn,2fn,3fn,4fn,
Normalización 1 fn,2fn,3fn,4fn,
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Operadores C SHARP
Operadores C SHARPOperadores C SHARP
Operadores C SHARP
 
Sistemas variantes en el tiempo
Sistemas variantes en el tiempoSistemas variantes en el tiempo
Sistemas variantes en el tiempo
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datos
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Anomalias
AnomaliasAnomalias
Anomalias
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficación
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
 
Evaluación de expresiones - Método divide y vencerás
Evaluación de expresiones - Método divide y vencerás Evaluación de expresiones - Método divide y vencerás
Evaluación de expresiones - Método divide y vencerás
 
6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos
 
Tipos de control de flujo
Tipos de control  de flujoTipos de control  de flujo
Tipos de control de flujo
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Control de velocidad de un motor CC: NI Labview
Control de velocidad de un motor CC: NI LabviewControl de velocidad de un motor CC: NI Labview
Control de velocidad de un motor CC: NI Labview
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Instituto tecnológico de villahermosa
Instituto tecnológico de villahermosaInstituto tecnológico de villahermosa
Instituto tecnológico de villahermosa
 
Administración de mantenimiento
Administración de mantenimientoAdministración de mantenimiento
Administración de mantenimiento
 

Similar a Investigacion sobre carga de metodos

Sobrecarga de operadores
Sobrecarga de operadoresSobrecarga de operadores
Sobrecarga de operadoresr0na91
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4K Manuel TN
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4K Manuel TN
 
METODO DE SOBRECARGA EN PROGRAMACION.pptx
METODO DE SOBRECARGA EN PROGRAMACION.pptxMETODO DE SOBRECARGA EN PROGRAMACION.pptx
METODO DE SOBRECARGA EN PROGRAMACION.pptxjuan gonzalez
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsVisual Engineering
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinasmezano09
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinasAngel Perez
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinasmezano09
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++Karime Hernández
 
Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepcionesJuan Mancilla
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosAntonio Palomares Sender
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2 Cesar Mcfly
 
Cuarta sesion herencia y polimorfismo-explicacion anibal
Cuarta sesion herencia y polimorfismo-explicacion anibalCuarta sesion herencia y polimorfismo-explicacion anibal
Cuarta sesion herencia y polimorfismo-explicacion anibalCarlos Anibal Riascos Hurtado
 
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptxMecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptxjuan gonzalez
 

Similar a Investigacion sobre carga de metodos (20)

Sobrecarga de operadores
Sobrecarga de operadoresSobrecarga de operadores
Sobrecarga de operadores
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 
Tutorial jared
Tutorial jaredTutorial jared
Tutorial jared
 
Por qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadoresPor qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadores
 
METODO DE SOBRECARGA EN PROGRAMACION.pptx
METODO DE SOBRECARGA EN PROGRAMACION.pptxMETODO DE SOBRECARGA EN PROGRAMACION.pptx
METODO DE SOBRECARGA EN PROGRAMACION.pptx
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operators
 
Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinas
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinas
 
Roberto orta salinas
Roberto orta salinasRoberto orta salinas
Roberto orta salinas
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepciones
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
 
Cuarta sesion herencia y polimorfismo-explicacion anibal
Cuarta sesion herencia y polimorfismo-explicacion anibalCuarta sesion herencia y polimorfismo-explicacion anibal
Cuarta sesion herencia y polimorfismo-explicacion anibal
 
Datos previos
Datos previosDatos previos
Datos previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptxMecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
 

Último

VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)mendezruben1901
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxJairReyna1
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)dianamateo1513
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresSegundo Silva Maguiña
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...Arquitecto Alejandro Gomez cornejo muñoz
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...humberto espejo
 

Último (20)

VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptx
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y Vectores
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
 

Investigacion sobre carga de metodos

  • 1. INSTITUTO TECNOLÓGICO SUPERIOR DE MARTÍNEZ DE LA TORRE INGENIERÍA MECATRÓNICA Materia: Programación Avanzada Catedrático: MRYSI. Ángel Salas Martínez Tema 2 Alumno: Aristenes Rojas Rendón Número de Control: 160I0325 Lugar y Fecha: Martínez de la Torre, Ver. 21 de Marzo del 2021.
  • 2. Contenido Introducción............................................................................................3 Constructores y destructores declaración, uso y aplicaciones..........4 Constructor ..........................................................................................4 La destrucción por defecto: Recogida de basura.............................5 sobre carga de métodos ........................................................................5 Cómo invocar un método sobrecargado: .........................................6 sobrecarga de operaciones ...................................................................6 Operadores Unarios ............................................................................7 Operadores binarios............................................................................8 Conclusión...............................................................................................9 Bibliografía ..............................................................................................9
  • 3. Introducción La programación orientada a objetos (POO) es una nueva forma de pensar, una manera distinta de enfocar y descomponer los problemas para desarrollar y proponer soluciones de programación. Actualmente, es una de las formas más populares de programar y viene teniendo gran aceptación en el desarrollo de proyectos de software desde los últimos años. Esta aceptación se debe a sus grandes capacidades y ventajas frente a las antiguas formas de programar. Teniendo en cuenta lo anterior, es indispensable que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la fundamentación y después el lenguaje de programación; ya que existen diferentes lenguajes que permiten su implementación y contienen sintaxis particulares.
  • 4. Constructores y destructores declaración, uso y aplicaciones Para crear un objeto se necesita reservar suficiente espacio en memoria e inicializar los valores de los campos que representan el estado del objeto. Este trabajo es realizado por un tipo especial de método denominado constructor. Constructor Un método constructor de una clase es un método especial que: tiene el mismo nombre que la clase y no tiene tipo de retorno. La sintaxis para la declaración de un método constructor es: [atributos] [modificadores] <identificador> ( [parámetros] ) [inicializador] { // Cuerpo del constructor. } Donde: atributos (opcional) es información declarativa adicional, modificadores (opcional) se restringen a extern y a los modificadores de acceso, identificador es el nombre del método constructor (igual al nombre de la clase), parámetros (opcional) es la lista de parámetros pasados al constructor, inicializador (opcional). Con el inicializador, el constructor invoca previamente a otro constructor. El inicializador puede ser uno de los siguientes: base([listaDeParámetros]) this([listaDeParámetros]) Cuerpo del constructor es el bloque de programa que contiene las instrucciones para inicializar la instancia de clase (objeto). Destructor La sintaxis para declarar un destructor es: [Atributos] ~ <Identificador> ( ) { // Cuerpo del destructor. } Una clase solamente puede tener un destructor. Los destructores no pueden heredarse o sobrecargarse, los destructores no pueden invocarse, sino que son invocados automáticamente, un destructor no acepta modificadores ni parámetros, por ejemplo, la siguiente es una declaración de un destructor para la clase Figura: ~ Figura() { // Instrucciones para limpiar. }
  • 5. La destrucción por defecto: Recogida de basura El intérprete de Java posee un sistema de recogida de basura, que por lo general permite que no nos preocupemos de liberar la memoria asignada explícitamente. El recolector de basura será el encargado de liberar una zona de memoria dinámica que había sido reservada mediante el operador new, cuando el objeto ya no va a ser utilizado más durante el programa (por ejemplo, sale del ámbito de utilización, o no es referenciado nuevamente). El sistema de recogida de basura se ejecuta periódicamente, buscando objetos que ya no estén referenciados. sobre carga de métodos Un método sobrecargado se utiliza para reutilizar el nombre de un método, pero con diferentes argumentos (opcionalmente un tipo diferente de retorno). Las reglas para sobrecargar un método son las siguientes:  Los métodos sobrecargados deben de cambiar la lista de argumentos.  Pueden cambiar el tipo de retorno.  Pueden cambiar el modificador de acceso.  Pueden declarar nuevas o más amplias excepciones.  Un método puede ser sobrecargado en la misma clase o en una subclase. Veamos un método que se desea sobrecargar: public void cambiarTamano(int tamano, String nombre, float patron){ } Los siguientes métodos son sobrecargas legales del método cambiarTamano(): public void cambiarTamano(int tamano, String nombre){} public int cambiarTamano(int tamano, float patron){} public void cambiarTamano(float patron, String nombre) throws IOException{}
  • 6. Cómo invocar un método sobrecargado: Lo que define qué método es el que se va a llamar son los argumentos que se envían al mismo durante la llamada. Si se invoca a un método con un String como argumento, se ejecutará el método que tome un String como argumento, si se manda a llamar al mismo método, pero con un float como argumento, se ejecutará el método que tome un float como argumento y así sucesivamente. Si se invoca a un método con un argumento que no es definido en ninguna de las versiones sobrecargadas entonces el compilador arrojará un mensaje de error. Reglas de la sobrecarga y sobreescritura de métodos: Ahora que hemos visto ambas formas de reescribir métodos, revisemos las reglas y diferencias entre ambos tipos de reescritura:  Argumentos: En un método sobrecargado los argumentos deben de cambiar mientras que en un método sobrescrito NO deben cambiar.  El tipo de retorno: En un método sobrecargado el tipo de retorno puede cambiar, en un método sobrescrito NO puede cambiar, excepto por subtipos del tipo declarado originalmente.  Excepciones: En un método sobrecargado las excepciones pueden cambiar, en un método sobrescrito pueden reducirse o eliminarse, pero NO deben de arrojarse excepciones nuevas o más amplias.  Acceso: En un método sobrecargado puede cambiar, en un método sobrescrito el acceso NO debe de hacerse más restrictivo (puede ser menos restrictivo).  Al invocar: En un método sobrecargado los argumentos son los que determinan qué método es el que se invocará, en un método sobrescrito el tipo de objeto determina qué método es elegido. sobrecarga de operaciones La sobrecarga de operadores es la capacidad para transformar los operadores de un lenguaje como por ejemplo el +, -, etc., cuando se dice transformar se refiere a que los operandos que entran en juego no tienen que ser los que admite el lenguaje por defecto. Mediante esta técnica podemos sumar dos objetos creados por nosotros o un objeto y un entero, en vez de limitarnos a sumar números enteros o reales, por ejemplo. La sobrecarga de operadores ya era posible en c++ y en otros lenguajes, pero sorprendentemente java no lo incorpora, así que podemos decir que esta
  • 7. característica es una ventaja de c# respecto a java, aunque mucha gente, esta posibilidad, no lo considera una ventaja porque complica el código. A la hora de hablar de operadores vamos a distinguir entre dos tipos, los unarios y los binarios. Los unarios son aquellos que solo requieren un operando, por ejemplo, a++, en este caso el operando es 'a' y el operador '++'. Los operadores binarios son aquellos que necesitan dos operadores, por ejemplo, a+c, ahora el operador es '+' y los operandos 'a' y 'c'. Es importante esta distinción ya que la programación se hará de forma diferente. Los operadores que podemos sobrecargar son los unarios, +, -, !, ~, ++, --; y los binarios +, -, *, /, %, &, |, ^, <<, >>. Es importante decir que los operadores de comparación, ==, !=, <, >, <=, >=, se pueden sobrecargar pero con la condición que siempre se sobrecargue el complementario, es decir, si sobrecargamos el == debemos sobrecargar el != Operadores Unarios En esta sección se verá cómo sobrecargar los operadores unarios, es decir aquellos que toman un solo operando, como por ejemplo a++. El prototipo de los métodos que van a sobrecargar operadores unarios será: public static Operando operator++(Operando a) Como antes sustituyendo el ++ por cualquier operador unario. El ejemplo dentro de nuestra clase de números complejos sería: public static ComplexNum operator++(ComplexNum a) { float auximg = a.Img; float auxreal = a.Real; return new ComplexNum(++auxreal, ++auximg); }
  • 8. Operadores binarios Para empezar, vamos a sobrecargar el operador suma ('+') para que al sumar dos objetos de la clase ComplexNum, es decir dos números complejos obtengamos un número complejo que será la suma de ambas partes. Cabe destacar que los prototipos para sobrecargar operadores serán: public static Operando operator+(Operando a, Operando b) Este es el prototipo para el operador +, el resto de los operadores binarios van a seguir el mismo patrón. Por tanto, el código del método de sobrecarga será el siguiente: public static ComplexNum operator+(ComplexNum a, ComplexNum b) { return new ComplexNum(a.Real + b.Real, a.Img + b.Img); } Este método sobrecarga el operador suma para que podamos sumar dos números complejos. Un dato a tener en cuenta es que los métodos que sobrecargan operadores deben ser static. Como se ve en el código los operandos son 'a' y 'b', que se reciben como parámetro y el resultado de la operación es otro número complejo que es el que retorna el método. Por tanto, se limita a crear un nuevo número complejo con ambas partes operadas. De la misma forma podemos crear la sobrecarga del operador resta ('-') para que lleve a cabo la misma función: public static ComplexNum operator-(ComplexNum a, ComplexNum b) { return new ComplexNum(a.Real - b.Real, a.Img - b.Img); } Como vemos el método es idéntico solo que sustituyendo los + por -. En este caso el trabajo que hacemos dentro del método es trivial, pero podría ser tan complejo como se quisiera.
  • 9. Conclusión Siempre debemos utilizar un constructor para todas nuestras clases. Nos permiten disponer de un lugar específico para inicializar nuestras variables y atributos, y crean restricciones que mejoran la seguridad en nuestra programación Bibliografía DEITEL, P. J. (2008). Como programaren JAVA. Mexico:PEARSON Prentice Hall.