Hasta ahora todos los problemas planteados hemos llamado a los métodos desde donde definimos un objeto de dicha clase, por ejemplo:
val persona1 = Persona("Juan", 12) persona1.imprimir() persona1.esMayorEdad()
Utilizamos la sintaxis:
[nombre del objeto].[nombre del método]
Es decir antecedemos al nombre del método el nombre del objeto y el operador punto.
Ahora bien que pasa si queremos llamar dentro de la clase a otro método que pertenece a la misma clase, la sintaxis es la siguiente:
[nombre del método]
O en forma larga:
this.[nombre del método]
Es importante tener en cuenta que esto solo se puede hacer cuando estamos dentro de la misma clase.
Plantear una clase Operaciones que en un método solicite la carga de 2 enteros y posteriormente llame a otros dos métodos que calculen su suma y producto.
class Operaciones { var valor1: Int = 0 var valor2: Int = 0 fun cargar() { print("Ingrese primer valor:") valor1 = readln().toInt() print("Ingrese segundo valor:") valor2 = readln().toInt() sumar() restar() } fun sumar() { val suma = valor1 + valor2 println("La suma de $valor1 y $valor2 es $suma") } fun restar() { val resta = valor1 - valor2 println("La resta de $valor1 y $valor2 es $resta") } } fun main(parametro: Array<String>) { val operaciones1 = Operaciones() operaciones1.cargar() }
Nuestro método cargar además de cargar los dos enteros en las propiedades procede a llamar a los métodos que calculan la suma y resta de los dos valores ingresados.
La llamada de los métodos de la misma clase se hace indicando el nombre del método.
Desde donde definimos un objeto de la clase Operaciones llamamos a sus métodos antecediendo el nombre del objeto:
val operaciones1 = Operaciones() operaciones1.cargar()
Proyecto118 class Hijos { val edades = IntArray(5) fun cargar() { for(i in edades.indices) { print("Ingrese edad:") edades[i] = readln().toInt() } mayorEdad() promedio() } fun mayorEdad() { var mayor = edades[0] for(i in edades.indices) if (edades[i] > mayor) mayor = edades[i] println("El hijo con mayor edad es $mayor") } fun promedio() { var suma = 0 for(i in edades.indices) suma += edades[i] val promedio = suma / edades.size println("La edad promedio de los hijos es $promedio") } } fun main(parametros: Array<String>) { val hijos1 = Hijos() hijos1.cargar() }