Saltar al contenido
Portada » Artículos » Métodos

Métodos

Imaginemos por un momentos la funcionalidad de un verbo las cuales junto a ella un objeto hace un acción (comportamiento), eso es lo que en teoría un método o función es, o así deberíamos hacer que se interpreten.

Los métodos son un elemento crucial dentro de las clases, debido a que con ello podremos realizar distintos tipos de lógica con datos suministrados internamente, pero también se puede utilizar en estructuras, interfaces, e incluso los delegados los utilizan.

¿Cómo se emplea un método?

Se emplea como un bloque de código que posee un enunciado (o así podría decirse) el cual se debe escribir en la convención PascalCase dónde antes de ello hay que colocar su nivel de acceso (public, private) y su condición si es estática static o modificadores adicionales como lo son abstract o sealed, para luego, el tipo de valor que presenta o devuelve dicho método (void o cualquier otro tipo de dato), luego viene el titulo o nombre del método y por consiguiente sus parámetros. Un ejemplo mas conciso sería:

private void CompareRichest (Person personOne, Person personTwo)
{
		if (personOne.Money > personTwo.Money)
		{
				// La primera persona tiene mas dinero
		}
		else if (personOne.Money < personTwo.Money)
		{
				// La segunda persona tiene mas dinero
		}
		else
		{
				// A quien engañamos, los dos tienen la misma riqueza
		}
}
 📃 Los métodos pueden contener parámetros que son variables temporales que provienen de un contexto exterior, es decir, son suministrados de otro lugar y se usaran en la lógica interna del método.

Los métodos al ser declarados y estructurados se pueden llamar, y si este método posee parámetros uno debe suministrarle los mismos tipos de datos para relacionar la información que solicita, a esto se le llama pasar argumentos al método. Otro ejemplo podría ser:

private void GrandStore ()
{
		Person traveler = new Person();
		traveler.Money = 50f;
		Person chief = new Person();
		chief.Money = 75f;
	
		CompareRichest(traveler, chief); // Se envian de argumentos dos elementos de tipo Person, esto satisface los parametros de CompareRichest
	
		// Al finalizar el resultado sería...
		// El chief tiene más dinero que el traveler
}
‼️ Podemos notar que GrandStore no posee parámetros y esto no es un error, solo es un método que no necesita elementos externos como parámetros para funcionar y por ende solo al llamarlo ejecutará la lógica que contiene en su cuerpo.

Métodos que pueden volver un valor

Esto no para aquí, hay mas potencial oculto dentro de esta especie de verbos y acciones que contienen los scripts que elaboramos, y es que tenemos la posibilidad de devolver valores con ellos, esto es posible si remplazamos la palabra clave void por un tipo de dato el cual será el tipo que contendrá nuestro resultado final del método. Aquí les va otro ejemplo:

private bool HaveExperienceToPass (Person player, Stage stage)
{
		if (player.Level >= stage.RequiredLevel)
		{
				// Tienes el nivel necesario para pasar a este escenario
				return true;
		}
		else
		{
				// No puedes pasar, sigue grindeando
				return false;
		}
}
 📃 Como se puede apreciar, cambiamos el void por un bool, ahora, se supone que este método devuelve un valor de tipo booleano, es decir, un true o un false y esto será dependiendo de la lógica que implementemos en dicho método. En este caso dependiendo del nivel de nuestro jugador para poder ingresar al siguiente escenario.

Ahora vamos a aplicar este nuevo método que devuelve un booleano, en otro método que pasará argumentos y atesorará una respuesta.

private void CheckToTravel()
{
		Person player = new Person();
		player.Level = 20;
		Stage harule = new Stage();
		harule.RequiredLevel = 15;

		bool canTravel = HaveExperienceToPass(player, harule); // En este caso el player tiene nivel 20 y el escenario requiere el nivel 15, nos dejará pasar porque nos dará el resultado de true
		
		if (canTravel == true)
		{
				// Viajar al siguiente nivel
		}
}
‼️ Puede llegar a confundir, pero lo que se esta logrando es utilizar el método HaveExperienceToPass como elemento lógico que asignará un resultado a canTravel y así luego el programa decidirá si el jugador está apto para viajar a ese escenario.

Con esto podemos denotar lo importante que son estos bloques de código, la información y lógica que pueden contener y el punto más importante la cantidad de código que nos pueden ahorrar, porque ese es su fin más ameno, reducir código y hacer lógicas sencillas pero eficaces.

Etiquetas:

Deja una respuesta