//yo tuve que declarar antes las variables que pasan por argumento //para la función ya que marcaba error fue algo asi:
double quantity;String currency;System.out.println("pesos a dolares:"+convertToDolar(quantity=200, currency="MXN"));
Gracias por tu aporte, tambien tuve que realizar lo mismo para que compilara el código.
¿Por que tuviste que declararlas antes? Yo tambien lo hice pero no entienddo por que.
Los metodos son declarados como static ya que el metodo main es static.
Los métodos declarados como static tienen varias restricciones, una de ellas es que pueden llamar directamente solo a otros métodos estáticos en su clase.
Si!, yo cuando realizaba tareas en java aprendí a la mala ese aspecto, siempre se debe tener el mismo acceso para que funcionen.
un método estático es un método que obliga a las demás clases hijas a usarlo por ejemplo una clase la cual sean SeresVivos, Esta es la clase padre, ahora otras Dos clases: clase Animal y clase Vegetal el método estático en la clase padre sería Morir(); por lo cual las clases hijas heredan obligatoria mente el método de la clase Padre
Recuerden que también pueden usar operadores de asignación para el switch de currency.
quantity *=0.052;//es igual que decirquantity = quantity *0.052;
Gracias por el recordatorio.
que bien, gracias!
¡Hola!
Experimente un poco con el código, cambia Switch por la sentencia If, aquí les dejo mi código :)
publicclassFunctions{publicstaticvoidmain(String[] args){System.out.println("Pesos a dolares:"+converToDolar(200,"MXN"));}publicstatic double converToDolar(double quantity,String currency){//Switch case and default/*switch (currency){
case "MXN" :
quantity = quantity * 0.042;
break;
case "COL" :
quantity = quantity * 0.00026;
break;
case "BOL" :
quantity = quantity * 0.15;
break;
default:
quantity = 0.0;
break;
}
return quantity;
}*///If, else if and elseif(currency =="MXN"){ quantity = quantity *0.042;}elseif(currency =="COP"){ quantity = quantity *0.00026;}elseif(currency =="BOL"){ quantity = quantity *0.15;}else{ quantity =0.0;}return quantity;}}
Cualquier corrección sera bienvenida...
vale el else if va separado, pero quedo bien dado que ahooras mas lineas de codigo
no lo había notado y el ultimo else no es necesario
}else {
quantity = 0.0;
Ricardo Arango..
La palabra reservada static hace que un método (en este caso) pase a formar parte de la clase Funciones...
La clase Math tiene muchos métodos static ya que con solo escribir el nombre de la clase Math seguido del punto ya muestra todos los métodos static sin necesidad de instanciar la clase ó crear objetos de ésta..
En la clase Funciones de ejemplo.. la profesora accede a los métodos directamente con solo escribir el nombre circleArea(), sphereArea(), sphereVolume() porque estos pueden ser accedidos directamente a a traves de la misma clase..
Me agrado bastante dividir los procesos en varias funciones y me llamo mucho la atención como IntelliJ reconoce que se está llamando una función y al colocar los parámetros nos indica exactamente a cual variable de la función corresponderá.
Notes
Hice mi version del conversor de monedas para que pueda recibir inpur del usuario :)
Code:
import java.lang.*;import java.util.Scanner;/**
* CurrencyConverter
*/publicclassCurrencyConverter{publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);System.out.printf("💸----Currency-Converter----💸\n");System.out.printf("\nCurrent currency type: ");String uCurrencyType = scanner.next();System.out.printf("\nQuantity: "); double uCurrencyAmount = scanner.nextDouble();//outSystem.out.printf("%.2f %s >> USD = %.4f USD\n", uCurrencyAmount, uCurrencyType,toUSD(uCurrencyAmount, uCurrencyType));}publicstatic double toUSD(double quantity,String fromCurrency){switch(fromCurrency.toUpperCase()){//MXN|COP|BOLcase"MXN": quantity *=0.046;break;case"COP": quantity *=0.00026;break;case"BRL": quantity *=0.18;break;default:System.err.printf("ERROR: this program only supports MXN|COP|BRL >> USD\ntry again with the aforementioned currencies\n");System.exit(1);break;}return quantity;}}
Output:
💸----Currency-Converter----💸
Current currency type:BRLQuantity:800800.00BRL>>USD=144.0000USD
😎
Static Method
Static methods are the methods in Java that can be called without creating an object of class. They are referenced by the class name itself or reference to the Object of that class
La verdad he visto vario cursos de Java, y a pesar de ser algo tan básico, la forma en que lo explica la profe es muy clara y entendible para cualquier persona en cualquier nivel. Excelente por Anahí.
Conversion COP a Dólar, 19/08/2021 (Actualizado)
😞
20/07/2022 Conversion COP a Dólar 0.00023 esta moneda se sigue devaluando y trabajamos las mismas horas
Tenía entendido que en Java no existían funciones ya que recibían el nombre de métodos, ¿es eso cierto?, ¿son los métodos y las funciones lo mismo? y de no ser así ¿Cuál es la diferencia entre método y función?
Hola Edison, la diferencia es que una función es un proceso que retorna un valor y un método puede retornar o no un valor y además pertenece a una clase.
Los métodos no devuelven un valor a diferencia de las funciones que si lo hacen.
para los que tengan problemas al compilarlo cuando ella va a imprimir el converToDolar();
ella lo que copia es esto:
System.out.println("PESOS A DOLARES: "+ converToDolar(200, "MXN"));
no esto:
System.out.println("PESOS A DOLARES: "+ converToDolar(quantity: 200, currency: "MXN"));
al poner el segundo caso les da error porque las variables quantity y currency non existen en el metodo main y tienen que declararlas.
la funciones en el caso del main, usan static, porque no son objetos a los cuales se crean instancias.
A ella se le autocompleta el sout de pesos a dolares dentro de main porque primero escribe 200 y luego
"MXN", si no ponen quantity y currency y antes de esto siguieron todo a la perfeccion, debe completarse solo en automatico. al menos a si lo sulicione yo. Bajenle la speed al video y compruebenlo.
Si tienen algún error para imprimir la función converToDolar; deben solamente poner los valores sin declarar la variable.
ej:
System.out.println("PESOS A DOLARES: "+convertToDollar(200,"ARS"));
Excelente aporte jajajajja estaba dando error y no sabia el porque
Static solo aplica para el main
Y para todos aquellos métodos y atributos que no necesariamente necesitan una instancia.
🔮 Si estamos copiando y pegando código, debemos crear una función que sea reutilizable.
¿A qué se refiere cuando dice que static se usa en métodos que comparten el método main? No lo terminé de entender.
ps normalmente donde este nuestro main es nuestro archivo de ejecucion, tanto el main como otros metodos dentro de el, se definen static porque pueden ser invocados sin la necesidad de crear una instancia...
Ahora cual es su uso, practicamente es separar responsabilidades, como dejar el main como index de informacion y otros metodos static para imprimir esa informacion, mejora mucho el rendiiento tambien si tienes un Main muy cargado y solo querias ver el proceso de algo puntual ps para esto se crean metodos static