Autor
|
Tema: Poner metodo fuera de una clase (Leído 9,427 veces)
|
|
Casidiablo
|
No es posible... cuando declares un método, éste debe estar SIEMPRE dentro de una clase, recuerda que Java es un lenguaje de programación Orientado a Objetos[/u]. Lo único que puedes hacer entonces, es declarar otra clase por fuera de la principal, por ejemplo:
/*Este programa calcula el salario semanal, y el bono navideño*/ import javax.swing.JOptionPane;
public class bononavidenio{ public static void main ( String args[]){ double salariosemanal; double bononavidenio; double pagoHora; String Nombre; Nombre = JOptionPane.showInputDialog("Introduce el nombre del trabajador:"); PagoHora = Integer.parseInt(JOptionPane.showInputDialog("¿Cuál es el pago por hora?")); JOptionPane.showMessageDialog("Blabla", "El pago es: "+ClaseExtrerna.CalculodePago(h, pago, a)); } }
public class ClaseExtrerna { public static CalculodePago(h, pago, a){ // aqui quiero que haga lo de el calculo de pago, y que se llame en el main. } }
Aunque obviamente no lo he probado con tu programa, esa es la idea.
|
|
« Última modificación: 16 Mayo 2007, 21:05 pm por Casidiablo »
|
En línea
|
|
|
|
[Ph4nt0m]
Desconectado
Mensajes: 4
|
Como bien han comentado java es un LOO luego no es posible. Solo tengo una cosa que añadir a la contestación dada.
Utilizando una clase externa (pej: EstrategiaPago) tendriamos una gran ventaja y sería que en el momento que quisieras (por lo que sea) cambiar el algoritmo de pago valdría con cambiar dicha clase sin tocar nada más lo cual es mucho más mantenible.
Tradicionalmente si tienes comportamientos distintos en una clase suele ser bueno pensar si podría dividirse en más.
|
|
|
En línea
|
|
|
|
.hack//
Desconectado
Mensajes: 674
|
Gracias por responder casidiablo.
Hice lo que me dices, pero me sigue marcando un error, uso el netbeans.
Aqui el codigo de como lo puse y el error que me da:
/*Este programa calcula el salario semanal, y el bono navideño*/ import javax.swing.JOptionPane;
public class bononavidenio{ public static void main ( String args[]){ double salariosemanal; double bononavidenio; double pagohora; String Nombre; double h; Nombre = JOptionPane.showInputDialog("Introduce el nombre del trabajador:"); pagohora = Integer.parseInt(JOptionPane.showInputDialog("¿Cuál es el pago por hora?")); h = Integer.parseInt(JOptionPane.showInputDialog("Cuantas horas trabajo?")); a = Integer.parseInt(JOptionPane.showInputDialog("Cual es la antiguedad del trabajador?")); JOptionPane.showMessageDialog("Blabla", "El pago es: "+calculodepago.CalculodePago(h, pagohora, a)); } }
public class calculodepago { public static double CalculodePago(h, pagohora, a) { double salariosem; double salariototal; if (h>40) { salariosem = ((h-40)*1.5*pagohora)+40*pagohora; } else { salariosem = h*pagohora; } salariototal=salariosem+calculobono(a); return salariototal; }
public class calculodebono { public static double calculobono(a) { double bono; if (a>=10) { bono=5000; } else { if (a>=5) { bono=2500; } else { bono=1250; } } return bono; } } errores init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\hack\JavaApplication18\build\classes
C:\Documents and Settings\hack\JavaApplication18\src\javaapplication18\Main.java:22: <identifier> expected
public static double CalculodePago(h, pagohora, a)
C:\Documents and Settings\hack\JavaApplication18\src\javaapplication18\Main.java:43: ')' expected
public class calculodebono
C:\Documents and Settings\hack\JavaApplication18\src\javaapplication18\Main.java:45: <identifier> expected
public static double calculobono(a)
C:\Documents and Settings\hack\JavaApplication18\src\javaapplication18\Main.java:68: ')' expected
}
C:\Documents and Settings\hack\JavaApplication18\src\javaapplication18\Main.java:68: '}' expected
}
5 errors
BUILD FAILED (total time: 0 seconds)
[Ph4nt0m] me podrias explicar mas a fonodo, me interesa, es que lo que pasa, es que tipico maestro que solo pone el problema y como lo quiere pero no lo explica, y esto no lo habia hecho antes Saludos [/size][/font]
|
|
|
En línea
|
|
|
|
Casidiablo
|
Cuando declares una función, y coloques los parametros de dicha fucnción, debes colocar el tipo de dato, por ejemplo: public funcion( int entero, double doble) Tu codigo quedaría mas o menos así: /*Este programa calcula el salario semanal, y el bono navideño*/ import javax.swing.JOptionPane;
public class bononavidenio{ public static void main ( String args[]){ double salariosemanal; double bononavidenio; String Nombre; double h=0,a=0,pagohora=0; Nombre = JOptionPane.showInputDialog("Introduce el nombre del trabajador:"); pagohora = Integer.parseInt(JOptionPane.showInputDialog("¿Cuál es el pago por hora?")); h = Integer.parseInt(JOptionPane.showInputDialog("Cuantas horas trabajo?")); a = Integer.parseInt(JOptionPane.showInputDialog("Cual es la antiguedad del trabajador?")); JOptionPane.showMessageDialog(null, "El pago es: "+calculodepago.calculoDePago(h, pagohora, a)); } }
class calculodepago { public static double calculoDePago(double h,double pagohora,double a) { double salariosem; double salariototal; if (h>40) { salariosem = ((h-40)*1.5*pagohora)+40*pagohora; } else { salariosem = h*pagohora; } salariototal= salariosem + calculodebono.calculobono(a); return salariototal; } }
class calculodebono { public static double calculobono(double a) { double bono; if (a>=10) { bono=5000; } else { if (a>=5) { bono=2500; } else { bono=1250; } } return bono; } } Saludos!!!
|
|
« Última modificación: 16 Mayo 2007, 23:58 pm por Casidiablo »
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Llamar a un metodo de una misma clase C++
Programación C/C++
|
d00ze13
|
2
|
13,592
|
9 Junio 2011, 18:48 pm
por d00ze13
|
|
|
¿Como llamar al metodo de una clase sin pasar por su constructor?
Java
|
GaudyG
|
5
|
7,719
|
14 Junio 2011, 00:22 am
por Stoya
|
|
|
Acceso método de clase base/madre
Programación C/C++
|
julianbesso1
|
3
|
3,136
|
1 Septiembre 2014, 12:59 pm
por eferion
|
|
|
Se ejecuta el método virtual de la clase base y no la heradada
Programación C/C++
|
CSQCasimiro
|
0
|
1,707
|
22 Octubre 2014, 02:10 am
por CSQCasimiro
|
|
|
(JS y PHP) no puedo ejecutar metodo de clase JS atraves de metodo de clase PHP
PHP
|
noob2012
|
2
|
3,629
|
7 Enero 2017, 22:27 pm
por noob2012
|
|