Tema 3 (2021)
2 participantes
Página 1 de 1.
Tema 3 (2021)
Estudiantes de la carrera de Ingeniería en Informática, asignatura: Programación Orientada a Objetos, pueden hacer sus aportaciones, participando en este foro, contestando al menos uno de los siguientes reactivos, temas o competencias:
Tema 3.- Métodos
Competencia Específica: Comprende y aplica los diferentes tipos de métodos, tomando en cuenta el ámbito y tiempo de vida de los datos durante la ejecución de un programa.
Subtemas:
3.1.- Definición de un método.
3.2.- Estructura de un método.
3.2.1.- Investigar el concepto de método y definir su estructura en un esquema gráfico.
3.3.- Valor de retorno.
3.4.- Declaración de un método.
3.4.1.- De clase
3.4.2.- De Instancia
3.4.3.- Construir al menos dos clases que solucionen problemas, utilizando métodos de cualquier tipo, presentar un fragmento de código fuente.
3.5.- Ámbito y tiempo de vida de variables.
3.6.- Argumentos y paso de parámetros
3.7.- Puntero this.
3.8.- Sobrecarga de métodos.
3.8.1.- Crear al menos dos aplicaciones, donde se involucren clases que hagan uso de sobrecarga de métodos y exponer su funcionamiento; presentando un fragmento de código fuente, acerca de ello.
3.9.- Constructores y destructores
3.10.- Crear al menos dos aplicaciones, en donde se utilicen diferentes tipos de variable, argumentos y paso de parámetros, así como diferentes métodos constructores y destructores para la creación y/o eliminación de objetos en diversas clases; y presentar un fragmento de código fuente.
ATTE: M.C. Edgar Rangel Lugo.
Tema 3.- Métodos
Competencia Específica: Comprende y aplica los diferentes tipos de métodos, tomando en cuenta el ámbito y tiempo de vida de los datos durante la ejecución de un programa.
Subtemas:
3.1.- Definición de un método.
3.2.- Estructura de un método.
3.2.1.- Investigar el concepto de método y definir su estructura en un esquema gráfico.
3.3.- Valor de retorno.
3.4.- Declaración de un método.
3.4.1.- De clase
3.4.2.- De Instancia
3.4.3.- Construir al menos dos clases que solucionen problemas, utilizando métodos de cualquier tipo, presentar un fragmento de código fuente.
3.5.- Ámbito y tiempo de vida de variables.
3.6.- Argumentos y paso de parámetros
3.7.- Puntero this.
3.8.- Sobrecarga de métodos.
3.8.1.- Crear al menos dos aplicaciones, donde se involucren clases que hagan uso de sobrecarga de métodos y exponer su funcionamiento; presentando un fragmento de código fuente, acerca de ello.
3.9.- Constructores y destructores
3.10.- Crear al menos dos aplicaciones, en donde se utilicen diferentes tipos de variable, argumentos y paso de parámetros, así como diferentes métodos constructores y destructores para la creación y/o eliminación de objetos en diversas clases; y presentar un fragmento de código fuente.
ATTE: M.C. Edgar Rangel Lugo.
3.8.- Sobrecarga de métodos.
La sobrecarga de métodos o comúnmente llamada Overloading es un práctica que consiste en tener diferentes métodos con el mismo nombre en una misma clase, y que el intérprete o compilador logre diferenciarlos por los tipos de datos que se envían como argumentos para los parámetros
Angel_Jim_2A6- Mensajes : 5
Fecha de inscripción : 23/03/2021
Métodos
Una clase está compuesta por dos cosas importantes: los atributos y los métodos. Los atributos son características inherentes al tipo de objeto que representa la clase. Por otro lado, los métodos son las acciones que puede llevar a cabo un objeto de ese tipo; un método entonces define el comportamiento de una clase.
Pasando a los lenguajes de programación, un método es algo similar a una función. Una función es un conjunto de líneas de código que constituyen el algoritmo que soluciona un problema. Un método, por su parte, también es eso, pero la diferencia radica en que este se declara o define dentro de una clase y trabaja con los atributos de la clase.
El que un método se defina o declare dentro de una clase implica que está sujeto a la encapsulación, lo que significa que el acceso a estas funciones especiales se puede restringir de una cierta forma y que se enlazan con los objetos, esto es, que pueden acceder a los atributos del objeto a través del cual sean llamados.
La declaración y definición de los métodos depende del lenguaje de programación que se use. En el caso de C++, la forma que adopta un método es idéntica a la que adopta una función. Ambos tienen 2 partes fundamentales: la cabecera y el cuerpo. La cabecera del método se compone de 3 cosas: el tipo de retorno, el identificador del método y la lista de parámetros. El tipo de retorno es simplemente un tipo de dato, el identificador es el nombre del método, y la lista de parámetros es la lista de datos que utiliza el método para realizar su trabajo.
Para declarar un método la cabecera es más que suficiente. Un ejemplo de declaración de método se da a continuación.
Para definir un método, en lugar de colocar un punto y coma, se coloca un par de llaves, y dentro de ellas se coloca el código que define lo que hace el método. Un ejemplo sencillo de método es el siguiente.
Para definir el método fuera de la clase es necesario saber acerca del ámbito de las cosas. El ámbito es, básicamente, el área bajo la que funciona un cierto elemento del programa. En C++ el ámbito de cualquier elemento se ve definido por las llaves, y se puede considerar que hay tipos de ámbito: global, de clase, de declaración y local. Así mismo, el ámbito se relaciona con el tiempo de vida de los objetos; cuando un objeto sale de ámbito, se destruye. En el siguiente código se muestra cómo se destruyen los objetos con base en el ámbito.
Luego, para definir un método fuera del ámbito de clase, en C++ se usa el operador de resolución de ámbito. Se define igual que si se definiera dentro de la clase, pero para referirse al identificador debe anteponerse el nombre de la clase seguido del operador "::". Un ejemplo se da a continuación.
Un elemento que resulta importante para el funcionamiento de los métodos es el puntero this. Un puntero es un objeto que apunta hacia otro objeto; para ser más claro, un puntero es un objeto que almacena una dirección de memoria de otro objeto. En el caso del puntero this, apunta hacia el objeto actual. Si se crea un objeto Class objeto1, el puntero this del objeto apuntará hacia la dirección de memoria de ese mismo objeto. El puntero this es importante porque en el funcionamiento interno del lenguaje es necesario conocer la dirección de memoria del objeto porque de eso dependerá el valor que tomen los métodos como argumento y de eso depende el valor que se pase cuando se consulte un miembro de datos. Además, si bien no es necesario utilizarlo explícitamente para guardar un valor en los atributos en C++, puede utilizarse para aclarar métodos con parámetros de nombre igual a los atributos. Un ejemplo se da a continuación.
Es importante tener cuidado con qué cosas se pasan como argumento a un método. Existen varias formas de pasar un parámetro a un método (o función), la primera es por valor; en esta, el método crea una variable local con el valor del argumento, se usa cuando los datos son pequeños, como un entero. Una segunda forma importante es el paso por referencia; en esta, el método opera directamente con el argumento, siendo capaz de modificarlo; por ejemplo, una función puede recibir una cadena de letras y transformarla en puras letras mayusculas. Una tercera forma es el paso por referencia constante; en esta, también se opera directamente con el argumento, pero a diferencia de la forma anterior, esta vez es una referencia constante, lo que significa que no se puede modificar, por lo que se usa principalmente para utilizar grandes cantidades de datos. La forma de definir estos tipos de pase de parámetro en C++ se muestra a continuación.
Hay 2 tipos de método importantes, los de instancia y los de clase. Los de instancia son los que se han descrito hasta ahora, pero los métodos de clase son métodos independientes de los objetos y que no trabajan con los atributos de un objeto, pero se definen adentro de la clase. Suelen ser usados para dar servicios a otras clases o a otras partes del programa. En C++, para definir un método de clase solamente se le tiene que agrega la palabra clave static al principio de la cabecera.
En un lenguaje de programación es importante siempre definir los objetos que se declaran porque no definirlos puede generar errores y desperdicio de recursos. Por esto se tienen los métodos constructores, estos tienen el nombre de la clase, no tienen tipo de retorno, y lo único que hacen es inicializar los atributos. Por otro lado, tenemos los métodos destructores, estos tienen también el nombre de la clase, pero precedido por una virgulilla (~), que son el contrario, destruyen los objetos cuando salen fuera de ámbito o se requiere explícitamente su destrucción. Un método destructor no lleva ninguna instrucción adentro a menos que se estén utilizando punteros. Ejemplos de estos métodos se dan a continuación.
Pasando a los lenguajes de programación, un método es algo similar a una función. Una función es un conjunto de líneas de código que constituyen el algoritmo que soluciona un problema. Un método, por su parte, también es eso, pero la diferencia radica en que este se declara o define dentro de una clase y trabaja con los atributos de la clase.
El que un método se defina o declare dentro de una clase implica que está sujeto a la encapsulación, lo que significa que el acceso a estas funciones especiales se puede restringir de una cierta forma y que se enlazan con los objetos, esto es, que pueden acceder a los atributos del objeto a través del cual sean llamados.
La declaración y definición de los métodos depende del lenguaje de programación que se use. En el caso de C++, la forma que adopta un método es idéntica a la que adopta una función. Ambos tienen 2 partes fundamentales: la cabecera y el cuerpo. La cabecera del método se compone de 3 cosas: el tipo de retorno, el identificador del método y la lista de parámetros. El tipo de retorno es simplemente un tipo de dato, el identificador es el nombre del método, y la lista de parámetros es la lista de datos que utiliza el método para realizar su trabajo.
Para declarar un método la cabecera es más que suficiente. Un ejemplo de declaración de método se da a continuación.
- Código:
class Clase
{
public:
void metodo(int arg1, int arg2);
};
Para definir un método, en lugar de colocar un punto y coma, se coloca un par de llaves, y dentro de ellas se coloca el código que define lo que hace el método. Un ejemplo sencillo de método es el siguiente.
- Código:
class Clase{
private:
int atributo;
public:
int obtenerAtributo(){
return atributo;
}
};
Para definir el método fuera de la clase es necesario saber acerca del ámbito de las cosas. El ámbito es, básicamente, el área bajo la que funciona un cierto elemento del programa. En C++ el ámbito de cualquier elemento se ve definido por las llaves, y se puede considerar que hay tipos de ámbito: global, de clase, de declaración y local. Así mismo, el ámbito se relaciona con el tiempo de vida de los objetos; cuando un objeto sale de ámbito, se destruye. En el siguiente código se muestra cómo se destruyen los objetos con base en el ámbito.
- Código:
int varGlobal = 1; // Ámbito global
int main{
int varMain = 2; //Ámbito local (funcion main)
while (true) {
int i = 3; //Ámbito de declaración(bucle while)
for (int j = 4; true) {
//j está en ámbito de declaración(bucle for)
}
//Termina bucle for, j es destruida.
break;
}
//Termina bucle while, i es destruida.
}
//Termina main(), varMain es destruida.
//varGlobal sigue con vida.
Luego, para definir un método fuera del ámbito de clase, en C++ se usa el operador de resolución de ámbito. Se define igual que si se definiera dentro de la clase, pero para referirse al identificador debe anteponerse el nombre de la clase seguido del operador "::". Un ejemplo se da a continuación.
- Código:
class Clase{
private:
int atributo;
public:
int obtenerAtributo();
};
int Clase::obtenerAtributo(){
return atributo;
}
Un elemento que resulta importante para el funcionamiento de los métodos es el puntero this. Un puntero es un objeto que apunta hacia otro objeto; para ser más claro, un puntero es un objeto que almacena una dirección de memoria de otro objeto. En el caso del puntero this, apunta hacia el objeto actual. Si se crea un objeto Class objeto1, el puntero this del objeto apuntará hacia la dirección de memoria de ese mismo objeto. El puntero this es importante porque en el funcionamiento interno del lenguaje es necesario conocer la dirección de memoria del objeto porque de eso dependerá el valor que tomen los métodos como argumento y de eso depende el valor que se pase cuando se consulte un miembro de datos. Además, si bien no es necesario utilizarlo explícitamente para guardar un valor en los atributos en C++, puede utilizarse para aclarar métodos con parámetros de nombre igual a los atributos. Un ejemplo se da a continuación.
- Código:
class Clase{
private:
int atributo;
public:
int establecerAtributo(int atributo){
this -> atributo = atributo;
}
};
Es importante tener cuidado con qué cosas se pasan como argumento a un método. Existen varias formas de pasar un parámetro a un método (o función), la primera es por valor; en esta, el método crea una variable local con el valor del argumento, se usa cuando los datos son pequeños, como un entero. Una segunda forma importante es el paso por referencia; en esta, el método opera directamente con el argumento, siendo capaz de modificarlo; por ejemplo, una función puede recibir una cadena de letras y transformarla en puras letras mayusculas. Una tercera forma es el paso por referencia constante; en esta, también se opera directamente con el argumento, pero a diferencia de la forma anterior, esta vez es una referencia constante, lo que significa que no se puede modificar, por lo que se usa principalmente para utilizar grandes cantidades de datos. La forma de definir estos tipos de pase de parámetro en C++ se muestra a continuación.
- Código:
#include <string>
#include <vector>
int calcularFactorial(int numero); //Pase por valor
void modificarCadena(std::string &cadena); //Pase por referencia
void leerVector(const std::vector <int> &unVector); //Pase por referencia constante
Hay 2 tipos de método importantes, los de instancia y los de clase. Los de instancia son los que se han descrito hasta ahora, pero los métodos de clase son métodos independientes de los objetos y que no trabajan con los atributos de un objeto, pero se definen adentro de la clase. Suelen ser usados para dar servicios a otras clases o a otras partes del programa. En C++, para definir un método de clase solamente se le tiene que agrega la palabra clave static al principio de la cabecera.
En un lenguaje de programación es importante siempre definir los objetos que se declaran porque no definirlos puede generar errores y desperdicio de recursos. Por esto se tienen los métodos constructores, estos tienen el nombre de la clase, no tienen tipo de retorno, y lo único que hacen es inicializar los atributos. Por otro lado, tenemos los métodos destructores, estos tienen también el nombre de la clase, pero precedido por una virgulilla (~), que son el contrario, destruyen los objetos cuando salen fuera de ámbito o se requiere explícitamente su destrucción. Un método destructor no lleva ninguna instrucción adentro a menos que se estén utilizando punteros. Ejemplos de estos métodos se dan a continuación.
- Código:
class Clase{
private:
int atributo;
public:
Clase(){
atributo = 0;
}
~Clase(){
}
};
Ivan_MP_2B6- Invitado
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.