Funciones, Procedimientos y Métodos
Análisis comparativo de subprogramas en Java, C, JavaScript y Python.
SLIDE 1 / 6
1. Funciones Puras vs Procedimientos
Un subprograma puede comportarse como una función pura (evalúa entrada y retorna resultado) o como un procedimiento (realiza acciones con efectos secundarios).
Función Pura: Sin efectos secundarios. Mismo input produce siempre mismo output.
Procedimiento (void): Modifica estado externo, imprime pantalla o escribe bases de datos sin retornar valor.
RETORNOS SEGÚN EL LENGUAJE
Java / Cvoid
JavaScriptundefined
PythonNone
2. Sintaxis y Modificadores
- Java: public static int sumar(int a, int b)
- C: int sumar(int a, int b)
- JavaScript: function sumar(a, b) / const sumar = (a, b) => a + b
- Python: def sumar(a: int, b: int) -> int:
Methods.java
public class Operaciones {
// Método de clase (Estático)
public static int multiplicar(int x, int y) {
return x * y;
}
// Procedimiento (void)
public static void saludar(String nombre) {
System.out.println("Hola " + nombre);
}
} 3. Métodos Estáticos vs de Instancia
Estáticos (Class Methods): Pertencen a la clase. Se invocan sin instanciar (`Math.max()`).
De Instancia: Operan sobre el estado interno del objeto (`this` en Java/JS, `self` en Python).
Car.java
public class Car {
private int speed;
// Método de instancia
public void accelerate(int increment) {
this.speed += increment;
}
} 4. Sobrecarga y Parámetros por Defecto
Java resuelve sobrecarga en compilación por tipos de parámetros. JS y Python usan parámetros por defecto y variádicos (*args, ...rest).
default_params.py
def saludar(nombre, mensaje="Bienvenido"):
return f"{mensaje}, {nombre}!"
print(saludar("Ana")) # Bienvenido, Ana!
print(saludar("Ana", "Hola")) # Hola, Ana! 5. Retornos Múltiples y Tuplas
En C y Java una función solo retorna un único valor primitivo u objeto. Python y JS permiten desestructurar tuplas y arreglos.
destructure.js
// Retorno de múltiples valores mediante desestructuración
function getCoords() {
return [10.5, 40.2];
}
const [lat, lng] = getCoords(); 6. Playground Interactivo de Métodos
Seleccioná un patrón de subprograma para evaluar en los 4 lenguajes:
Java
public static int add(int a, int b) { return a + b; } C
int add(int a, int b) { return a + b; } JavaScript
const add = (a, b) => a + b;
Python
def add(a: int, b: int) -> int: return a + b
Navegación: Flechas Izq / Der