elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  implementar una clase
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: implementar una clase  (Leído 2,366 veces)
MessageBoxA

Desconectado Desconectado

Mensajes: 229


ayudame a ayudarte


Ver Perfil WWW
implementar una clase
« en: 16 Abril 2014, 22:43 pm »

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

Código
  1. public class Operaciones
  2. {
  3. public static double suma(double a, double b)
  4. {
  5. return a+b;
  6. }
  7. public static double resta(double a, double b)
  8. {
  9. return a-b;
  10. }
  11. public static double multiplica(double a, double b)
  12. {
  13. return a*b;
  14. }
  15. public static double divide(double a, double b)
  16. {
  17. return a/b;
  18. }
  19. public static double modulo(double a, double b)
  20. {
  21. return a % b;
  22. }
  23. }
  24.  
  25. public class PruebaOperaciones
  26. {
  27. public static void main (String args[])
  28. {
  29. System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );
  30. }
  31. }
  32.  


favor diganme que esta mal ya que no soy muy conocedor de java me estoy iniciando


En línea

SI LA MATRIX FUERA PERFECTA.... ESTARÍA ESCRITA EN C++
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: implementar una clase
« Respuesta #1 en: 16 Abril 2014, 23:38 pm »

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
Código
  1. public class Operaciones {
  2. ... //todo tu codigo
  3. }
  4.  

PruebaOperaciones.java
Código
  1. public class PruebaOperaciones {
  2. ... //todo tu codigo
  3. }
  4.  

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
Código
  1. class Operaciones {
  2. ... //todo tu codigo
  3. }
  4.  
  5. public class PruebaOperaciones {
  6. ... //todo tu codigo
  7. }
  8.  

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
Código
  1. public static void main (String args[])
  2. {
  3. Operaciones op = new Operaciones(); //se crea un objeto de la clase Operaciones
  4. double res = op.suma(1, 2);
  5. }
  6.  

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.


« Última modificación: 16 Abril 2014, 23:50 pm por Darhius » En línea

abc
JS3

Desconectado Desconectado

Mensajes: 18



Ver Perfil
Re: implementar una clase
« Respuesta #2 en: 18 Abril 2014, 03:24 am »

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 Operaciones

otra 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

Código
  1.  
  2. public class PruebaOperaciones{
  3.  
  4.  public static class Operaciones{
  5.  
  6.    public static double suma(double a, double b){
  7.      return a+b;
  8.    }
  9.  
  10.    public static double resta(double a, double b){
  11.      return a-b;
  12.    }
  13.  
  14.    public static double multiplica(double a, double b){
  15.      return a*b;
  16.    }
  17.  
  18.    public static double divide(double a, double b){
  19.      return a/b;
  20.    }
  21.  
  22.    public static double modulo(double a, double b){
  23.      return a % b;
  24.    }
  25.  
  26.  }
  27.  
  28.  public static void main (String args[]){
  29.    System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );
  30.  }
  31.  
  32. }
  33.  
  34.  


pero si la prefieres tener por fuera dale como te mencionaron anteriormente:

nombre del archivo: PruebaOperaciones.java

Código
  1.  
  2. class Operaciones{
  3.  
  4.    public static double suma(double a, double b){
  5.      return a+b;
  6.    }
  7.  
  8.    public static double resta(double a, double b){
  9.      return a-b;
  10.    }
  11.  
  12.    public static double multiplica(double a, double b){
  13.      return a*b;
  14.    }
  15.  
  16.    public static double divide(double a, double b){
  17.      return a/b;
  18.    }
  19.  
  20.    public static double modulo(double a, double b){
  21.      return a % b;
  22.    }
  23.  
  24.  }
  25.  
  26. public class PruebaOperaciones{
  27.  
  28.  public static void main (String args[]){
  29.    System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );
  30.  }
  31.  
  32. }
  33.  
  34.  



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
Código
  1. public static void main (String args[])
  2. {
  3. Operaciones op = new Operaciones(); //se crea un objeto de la clase Operaciones
  4. double res = op.suma(1, 2);
  5. }
  6.  

Saludos.

Estas errado, la forma de llamar los métodos no es incorrecta, puesto de que se tratan métodos del tipo static.

JS3
« Última modificación: 18 Abril 2014, 03:32 am por JS3 » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: implementar una clase
« Respuesta #3 en: 18 Abril 2014, 06:42 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.
Código
  1. System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );
  2.  
En línea

abc
JS3

Desconectado Desconectado

Mensajes: 18



Ver Perfil
Re: implementar una clase
« Respuesta #4 en: 18 Abril 2014, 15:17 pm »

Claro esta forma de llamar los métodos es correcta

Código
  1. System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );
  2.  

¿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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines