buenas qusiera que me ayudaran, no puedo implementar este codigo es sencillo solo quiero llamar desde la clase main, la clase Operaciones para realizar uno de los metodos pero el netbeans no me deja compilarlo
public class Operaciones
{
public static double suma(double a, double b)
{
return a+b;
}
public static double resta(double a, double b)
{
return a-b;
}
public static double multiplica(double a, double b)
{
return a*b;
}
public static double divide(double a, double b)
{
return a/b;
}
public static double modulo(double a, double b)
{
return a % b;
}
}
public class PruebaOperaciones
{
public static void main (String args[])
{
System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );
}
}
favor diganme que esta mal ya que no soy muy conocedor de java me estoy iniciando
Todo ese código lo tienes en el mismo archivo.java?
Si es así tienes dos opciones, una es separar el código
1. En un archivo colocas la clase Operaciones y en otro archivo la clase PruebaOperaciones, recuerda que en java el nombre del archivo debe ser igual al de la clase publica.
Operaciones.java
public class Operaciones {
... //todo tu codigo
}
PruebaOperaciones.java
public class PruebaOperaciones {
... //todo tu codigo
}
2. Si no prefieres tener dos archivos, solo debes quitar la palabra reservada public (modificador) en la clase que no tiene tu método principal ( public static void main() {} ), entonces te quedará algo como lo siguiente.
PruebaOperaciones.java
class Operaciones {
... //todo tu codigo
}
public class PruebaOperaciones {
... //todo tu codigo
}
3. La forma en como quieres llamar a tus métodos de tu clase Operaciones es incorrecta.
Una forma de hacerlo es creando un objeto de tu clase padre, en este caso Operaciones
public static void main (String args[])
{
Operaciones op = new Operaciones(); //se crea un objeto de la clase Operaciones
double res = op.suma(1, 2);
}
4. Para que tu clase PruebaOperaciones pueda acceder a tus métodos de la clase Operaciones debes quitar la palabra reservada static (modificador). Para que una clase A pueda tener accesos a los métodos de la clase B, los métodos deben estar definidos como public (además de lo ya mencionado)
Espero haberme explicado.
Saludos.
Hola que tal,
Bien, tienes muchas soluciones a tu problema, dos de ellas son como ya te la comentaron anteriormente, que son:
1. creando dos archivos, uno para cada clase.
2. eliminando el
public a
public class Operacionesotra que puedes hacer insertando la clase
Operaciones dentro de tu clase
PruebaOperaciones, pero al hacer esto la clase debería de ser estática, es decir, quedaría de la siguiente forma:
nombre del archivo:
PruebaOperaciones.java
public class PruebaOperaciones{
public static class Operaciones{
public static double suma(double a, double b){
return a+b;
}
public static double resta(double a, double b){
return a-b;
}
public static double multiplica(double a, double b){
return a*b;
}
public static double divide(double a, double b){
return a/b;
}
public static double modulo(double a, double b){
return a % b;
}
}
public static void main (String args[]){
System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );
}
}
pero si la prefieres tener por fuera dale como te mencionaron anteriormente:
nombre del archivo:
PruebaOperaciones.java
class Operaciones{
public static double suma(double a, double b){
return a+b;
}
public static double resta(double a, double b){
return a-b;
}
public static double multiplica(double a, double b){
return a*b;
}
public static double divide(double a, double b){
return a/b;
}
public static double modulo(double a, double b){
return a % b;
}
}
public class PruebaOperaciones{
public static void main (String args[]){
System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );
}
}
Cita de: Darhius en 16 Abril 2014, 23:38 PM
3. La forma en como quieres llamar a tus métodos de tu clase Operaciones es incorrecta.
Una forma de hacerlo es creando un objeto de tu clase padre, en este caso Operaciones
public static void main (String args[])
{
Operaciones op = new Operaciones(); //se crea un objeto de la clase Operaciones
double res = op.suma(1, 2);
}
Saludos.
Estas errado, la forma de llamar los métodos no es incorrecta, puesto de que se tratan métodos del tipo
static.
JS3
Cita de: JS3 en 18 Abril 2014, 03:24 AM
Estas errado, la forma de llamar los métodos no es incorrecta, puesto de que se tratan métodos del tipo static.
JS3
Suponiendo que todo lo demás está bien, se supone que eso es correcto??
:xD
El código en ningun momento tiene la clase static operaciones dentro de la pruebaoperaciones... y aunque ciertamente por la forma en que o llama en su main está bien siempre y cuando lo haga como mencionas, además solo mencioné que era una forma de hacerlo, no que era la única.
System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );
Claro esta forma de llamar los métodos es correcta
System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );
¿Por qué es correcta?, porque son métodos static como bien ya lo había mencionado, esto quiere decir que el objeto no tendrá dicho método, es un método de clase, y la única forma de invocarlo es mencionando a la clase.
La clase no necesariamente tiene que ser del modo static para tener métodos y/o variables static, de hecho puede ir separado en dos (2) archivos diferentes como tu lo mencionas y el main no se vera afectado para nada.
JS3