No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Introducción a Java

Curso de Introducción a Java

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

¿Para qué sirven las funciones?

26/39
Recursos

Las funciones nos ayudan a ejecutar código que dependiendo de las opciones que le enviemos, transformará y devolverá un cierto resultado. Gracias a las funciones podemos organizar, modularizar, reutilizar y evitar repetidos en nuestro código.

Todas nuestras funciones deben tener un nombre. Opcionalmente, pueden recibir argumentos y devolver un resultado. También debemos especificar el tipo de dato de nuestros argumentos y el resultado final de nuestra función.

Por ejemplo:

public int suma(int a, int b) {
  return a + b;
}

Si nuestra función NO devuelve ningún tipo de dato podemos usar la palabra reservada void.

Para utilizar nuestras funciones solo debemos asignar el resultado de la función y sus parámetros a una variable con el mismo tipo de dato de la función:

int c = suma(5, 7);

Aportes 94

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

¿Para qué sirven las funciones?
.
Funciones: nos ayudan a organizar, modularizar y evitar el código repetido.
Return: palabra clave cuando una función tiene un valor de regreso.
Void: palabra clave cuando una función no tiene un valor de regreso.
.
Nota: si nuestras funciones van a devolver argumentos, lo mejor es que especifiques el tipo de dato que serán. Para utilizar nuestras funciones solo debemos asignar el resultado de la función y sus parámetros a una variable con el mismo tipo de dato de la función.
.

Si eres nuevo como yo, presta toda la atencion posible… Suelta el telefono, ipad o lo que sea que te distraiga y aprende!!

Existen 4 modificadores de acceso:

1. Public: Este modificador de acceso, permite acceder al elemento desde cualquier clase, independientemente de que esta pertenezca o no al paquete en el que se encuentra el elemento.
2. Private: El modificador de acceso private, es el mas restrictivo y especifica que los elementos que lo utilizan, solo pueden ser accedidos  desde la clase en la que se encuentran. La única manera de acceder a este tipo de modificador es creando los metodos getter y setter.
3. Protected: Este modificador de acceso, indica que los elementos solo pueden ser accedidos desde su mismo paquete (al igual que el modificador por defecto). Y tambien desde cualquier clase que "herede" la clase en la que se encuentra, independientemente de si esta se encuentra en el mismo paquete o no.
4. Default: El modificador de acceso por defecto, no tiene ninguna palabra reservada asociada, pero se suele conocer como default o package-private. Cuando no especificamos ningun modificador de acceso, se utiliza el modificador de acceso por defecto, que consiste en que el elemento puede ser accedido solo desde las clases que pertenezcan al mismo paquete.

A las funciones que devuelven algo se les llama "getter"
y, a los que no devuelven nada se les llama “setter”

Wtf que difícil se me hizo comprender en la universidad esto muchas gracias Anahi

Ahora en las ultimas versiones de java donde se puede declarar variables sin especificar su tipo, podemos hacer lo mismo con las funciones donde van los argumentos ?

Tengo entendido que los argumentos son los que se pasan en la invoacion del método y los parametros los que van en la firma

// estos serian los párametros
public int suma (int a, int b){
 return a + b;
}

y estos los argumentos:

suma(4,3)
import java.util.Scanner;

public class Functions {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);
 System.out.println("Ingresa tú nombre: ");
 String nombre = entrada.nextLine();
System.out.println("¡Perfecto " + nombre + " hoy vamos a sumar rápido!");
 Scanner a = new Scanner(System.in);
System.out.println("Digita un numero: ");
long numero1 = a.nextLong();
Scanner b = new Scanner(System.in);
System.out.println("Digita otro numero: ");
 long numero2 = b.nextLong();

System.out.println(nombre + "el resultado de la suma es: " + suma(numero1,numero2));

}

    public static long suma (long numero1, long numero2){
        return numero1+numero2;
    }

}

Mis apuntes, espero que le puedan entender :’)

Quien mas esta a aca en un platzi day?

public static void main(String[] args) {
System.out.println("la suma es " + suma(5,2));
}
public static int suma (int c1 , int c2){
return c1+c2;
}

SUPER IMPORTANTE!!! Evitar código repetido.

✨ Las funciones nos permiten organizar, modularizar y evitar código repetitivo.

Me gusto la analogía de que una función es un cajita mágica, hace que se entienda de manera muy fácil

Ojalá explicaran este tema así en la universidad

yo creo que a y b serian parametros y no argumentos.

Ejemplos:

soy la unica a la que se le paraliza y no le corre bien el video? tengo un internet de 93 de descarga y 36 megas de subida. bastante rapido

Un aporte interesante es que podemos usar la palabra reservada static para que el método sea accedido desde cualquier clase sin instanciar un objeto de la clase donde se encuentre.

  • Funciones
  1. Cuando tienen un valor de regreso: return.
  2. Cuando no tienen un valor de regreso: void.
  • void significa nada, vacío.

En Java, las funciones son la principal forma que tenemos para poder dividir los programas en módulos. Pero algunos tipos de funciones devuelven un valor al programa principal. En este sentido, se pueden asignar valores de retorno de una función a una variable.

Un dato que para muchos no tiene importancia es que los datos que recibe un metodo son llamados “parametros”, por otro lado cuando llamamos a un metodo y le enviamos informacion, estos toman el nombre de “argumentos”

muchos los llaman igual indistintamente pero si tiene cada uno su nombre

int cines = 4;
String pelicula="guerra ";

    // instrucción switch con tipo de datos int
    switch (cines ) 
    {
        case 1:  
                 break;
        case 2:  
                 break;
        case 3: 
                 break;
        case 4:  pelicula="guerra";
                 break;
        case 5:  
                 break;
public class Funciones {

    public static int suma(int a, int b){
        return (a+b);
    }

    public static void main(String[] args) {
        System.out.println(suma(7,7));
    }
}

Les dejo el esqueleto de un programa que hice que utiliza una función:

class Main 
{
  //Método Main
  public static void main(String[] args)
  {
    System.out.println("");
    System.out.println("Elige una carta:");
    System.out.println("");
    
    String number = "Queen";
    String figure = "Corazones";

    //Almacenamos en un arreglo el valor que nos regresa el método encontrarCarta
    String[] array = encontrarCarta(number, figure);

    for(int i = 0; i < array.length; i++)
    {
      System.out.println(array[i]);
    }
  }
  
  //Método para encontrar la carta. Este método retorna un arreglo
  public static String[] encontrarCarta(String n, String f)
  {
    //Arreglo que retornaremos
    String[] respuesta = {"", ""};

    //Declaración de los arreglos
    String[] numeros = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};
    String[] figuras = {"Espadas", "Corazones", "Rombos", "Treboles"};
    
    //Recorremos ambos arreglos y cuando se cumple la condición asignamos los valores correspondientes en el arreglo respuesta
    for(int i = 0; i < figuras.length; i++)
    {
      for(int j = 0; j < numeros.length; j++)
      {
        if(n == numeros[j] && f == figuras[i])
        {
          respuesta[0] = numeros[j];
          respuesta[1] = figuras[i];
        }
      }
    }
    
    //Retornamos el arreglo
    return respuesta;
  }
}

Interesante tema.

Las funciones void como son procesos, no se almacenan en ningun tipo de variable, ya que su tipo es void 😊

  • Las funciones nos ayudan a ejecutar código dependiendo de las opciones que le enviamos, transformará y devolverá un cierto resultad. Gracias las **funciones ** podemos organizar, modularizar, reutilizar y evitar repetidos en nuestro código.
  • Imaginas las funciones como una pequeña caja mágica, donde vamos a estar ingresando un dato y es probable que ese dato regrese pero distinto o procesado con diferentes características o incluso podamos devolver un dato totalmente diferente a un dato que ni siquiera era el que habíamos ingresado.
  • Las funciones generalmente siempre van a tener un input y van a tener un output. ( una entrada y una salida ), generalmente no es en todos los casos.
  • FUNCIONES
  1. Organizar y modularizar el código.
  2. Reutilizar código.
  3. Evitar código repetido.

Es un tema muy importante y debes de dominarlo por completo, los modificadores de acceso.
Modificadores de acceso: * public * private * protected * default.
El modificador de acceso default, no se especifica, sino que es colocado cuando NO SE ESPECIFICA NINGUN MODIFICADOR DE ACCESO.
El modificador de acceso public, permitira que cualquier clase de cualquier paquete, pueda acceder a tu codigo.
El modificador de acceso private, sirve para nivel de encapsulamiento, encapsular tu codigo es cuando restringes el acceso de un 3ero a tu codigo, para que haya un mejor funcionamiento, y asi de esta manera agilizar un futuro proceso de mantenimiento de tu codigo.
El modificador de acceso protected, es para el package level, siempre y cuando la clase se encuentre en el mismo paquete, podra acceder a los miembros que se encuentran en esa otra, que son protected.

Asi como modificadores de acceso, hay modificadores DE NO ACCESO, tal es el caso de la palabra reservada final, que impide la modificacion del contenido de una variable, haciendola constante en su defecto. O impide la sobre escritura de la un metodo.

Mi código de la clase (NetBeans 16, Java 19):

los parámetros son los nombres que aparecen en la definición de una función. Por su parte, los argumentos son los valores que le pasamos (y que, por tanto, recibe) una función.

  • Las funciones tienen nombre.
  • No siempre las funciones van a devolver algo. Cuando se va a devolver algo hay que tener en cuenta que hay que especificar que tipo de datos vas a especificar.
  • Modificadores de acceso.
  • Valor de regreso.
  • Nombre.
  • Argumentos.

No sabia lo del valor de retorno previo al nombre

Es muy importante pensar en el futuro TU y evitar código repetido y en vez de eso vamos a hacer funciones, o módulos

Excelente explicación!!!

Tambien creo que ayuda a evitar el codigo espagetti.

🚧 Las funciones != métodos 🚧

En términos de sintaxis pueden parecerlo, pero el contexto es importante para hacer la distinción, una función una vez declarada la puedes llamar únicamente usando el nombre asignado; un método debe de ser llamado generalmente desde una instancia de la clase a la que el método pertenece.

Existen casos donde se puede llamar el método desde la clase misma sin necesidad de una instancia, pero sería desviarnos en términos de modificadores de acceso.

excelente profesora

Estan buenos los ejemplos

Muy bien explicado. Gracias.

En algunas ocasiones pues romper ciclos o funciones con un return vacio algo como
-> return;

buena explicacion

Considero que uno de los principales usos de las funciones es que el código sea más entendible, ordenado y legible, igual nos ayudan a no repetir código.

Procedimiento: Es un conjunto de instrucciones que cumplen una tarea
Función: Como un procedimiento pero retorna un valor
Clase: Concepto de programación orientada a objetos, es una forma de encapsular funcionalidad, contiene campos y métodos.
Método: Puede ser un procedimiento o una función, la diferencia es que le pertenece a una clase.

Las funciones son muy importantes para no repetir código y ser más prácticos en la construcción de código.

En la universidad no entendía los métodos void y por qué algunos debían tener un return 😅 todavía no me queda claro 🙃

usa el método void, cuando en tu función no retornas nada.

Las funciones no son de javascript? , aquí más bien se llaman métodos no?, creo que nunca los había escuchado que los nombraran funciones hasta hoy jajaja

eL modificador de acceso determina si puede ser invocadada la funcion desde otra clases o solo puede ser utlizada en la clase de origen.

java es cool cuando ya le entiendes 😃

Las funciones nos ayudan a organizar, modularizar y reutilizar código, una función cuenta con un modificador de acceso (public), el tipo de dato que devuelve (int), nombre de la función (sumar) y argumentos().
En caso de que nuestra función no devuelva ningun resultado se reemplaza el tipo de dato por la palabra reservada (void).

tambien podemos hacer sobrecarga de funciones pero esto se vera mas adelante :3

Genial!!

muy bien

Tengo que crear una funcion con draw, para escribir muchas X, como puedo hacerlo?

Si solo un archivo / clase tiene toda la responsabilidad del programa es considerado mala práctica es por eso que debemos utilizar funciones para modular el programa

es un menu de opciones

     int semana = 4;
    String dieta="papaya";
     
    // instrucción switch con tipo de datos int
    switch (semana ) 
    {
        case 1:  
                 break;
        case 2:  
                 break;
        case 3: 
                 break;
        case 4:  dieta="papaya";
                 break;
        case 5:  
                 break;
        case 6: 
                 break;
        case 7:  ;
                 break;
        default: 
                 break;
    }
    System.out.println(dieta);
}

}

Yeess!!

Muy bien!!

yo uso funciones en POO

//TIENEN UNA ENTRADA Y UNA SALIDA
:RECIBEN COMO PARAMETROS EN LA FUNCIÓN
/*
–AYUDANAMODULARIZARELCODIGO
–AYUDANAREUTILIZARELCODIGO
–EVITARELCODIGOREPETIDO
publicintsuma(inta,intb){
returna+b;//elvalorderegreso,especificarelvalorderegreso
}
LLAMARA A LA FUNCION:
intc=suma(5,7);
//retorna el resultado en la variable c
*/

Existen las funciones tipo void las cuales no exigen un return, aún así este comando se puede usar sin regresar nada solo return; para salir de la función por alguna razón, (ej. alguna validación que no se cumple) y estas funciones son de gran ayuda.

Excelente explicación de las funciones

Excelente!

claara explicación.

//Tema bastante útil para simplificar el código y hacerlo más óptimo;

Excelente curso

Las funciones soy extremadamente utiles para cualquier aplicacion ya que nos permiten modularizar nuestro codigo y hacerlo mucho mas legible para nosotros mismos y otros programadores que trabajen en el mismo proyecto. Esto hace la diferencia entre depurar un bug rapido o practicamente reescribir el codigo para saber que se queria lograr.

Muy bien, ahora me ha quedado más claro como es la estructura que debe tener una función y la importancia de usar la palabra reservada return para devolver datos después de las operaciones o usar void en caso de que solo queramos que se procese pero no se regrese.

Excelente…el poder crear codigo sin ser redundantes …es lo ideal para agilizar y simplificar, obteniendo muy buenos resultados y con calidad profesional…

Con las funciones tendremos un código más limpio y sin redundar.

Genial.

Super claro…divide y vencerás 😃

public class SentenciaSwitch {
public static void main(String[] args) {
String colorMode = “Dark”;
switch (colorMode) {
case “Black” :
System.out.println(“Select Black Mode”);
break;
case “Blue”:
System.out.println(“Sekect Blue Mode”);
break;
case “White”:
System.out.println(“Select White Mode”);
break;
default:
System.out.println(“Select DARK Mode”);
}
}
}

RESPUESTA;
Select DARK Mode

En el ejercicio ejecutamos la opción default.

Muy buena explicacion!

Dividir el codigo en funciones también puede ayudar a la legibildiad.
En lugar de tener una línea de código díficil de leer, puedes tener una llamada a una función que tenga un nombre descriptivo.

tiene similitudes muy grandes con otros lenguajes por suerte lo que ayuda mucho su uso

Vamos platzi

Todo clarísimo. Gracias

Maldita sea, es como activar el ultra instinto cada vez que aprendo algo con esta distinguida profesora.

Class Notes

<h3>Basic Structure:</h3>

What is above is the basic structure of a function, however not all functions work the same.

Functions may return a value or not. The following are the types of functions:

Getter: functions that return something

Setter: functions that do not return something

Parts of a function:

<h3>Access mode:</h3>
  • Can be public
  • Can be private
<h3>Return value:</h3>

Within a function in the part that says valor regreso (based on the image above) is where we set this.

  • If the function returns something we put the type of that something that is going to return (ex: int, String, char, boolean, short, long, etc…)
  • If the function does not return something then we write void, which is like saying nothing
<h3>Name:</h3>

Here we specify the name of the function

<h3>Arguments:</h3>

Here we specify the arguments it’s going to recieve and the type of these arguments, for example, if we want to receive two arguments of the type int and we also want to assign them letters, we will have:

nameFunc(int a, int b) { [//something](//something) }

Calling a function

To call a function we type the name of the function and two parenthesis ‘()’, for example, if we have the following function:

public int add(int a, int b) {
	return a+b;
}

We will call it with add(arg1, arg2), but in this case, we want to assign what is it returns to a variable as in the following example:

int n1 = 15;
int n2 = 10;

int n3 = add(n1, n2);

//example (casting)
double n4 = (double) add(n1, n2);

(Note: if we assign the return value of a function to a var, we must be aware that the var has the same type as the type of value the function is returning, or else we might as well cast it)

gran clase

Yo tengo entendido que los parámetros y argumentos en una función son diferentes, se les llama parámetros cuando se crea la función y se declara el tipo de variable y nombre, y se les llama argumento cuando se hace el llamado a dicha función y se le pasan los valores asociados a los parámetros antes definidos, a dichos valores se les llaman argumentos.

yo esto los conocía como métodos custom

Interesante las funciones son una caja negra que tienen entradas y salidas

excelente clase

Las funciones sirven para modularizar nuestro código y evitar repetirlo.