Duda Java

zoeshadow

El caso es que estamos empezando en clase con Java, el programa ha de pedirte 2 numeros por pantalla y devolverte el resultado de la suma, multiplicacion, resta y division.
El problema es que no soy capaz de pasar los numeros leidos a la otra clase, ya que lo del "getter" no me funciona dentro del static void main... blabla
Aqui el codigo:

spoiler

El codigo de la clase operaciones, en donde están todas las operaciones escritas.

spoiler

El get pasa un valor 0 a la otra clase, y si lo pongo dentro del corchete del void main, me da error, he estado buscando por inet pero estoy un poco perdido de que es lo que necesito exactamente.

Decir que si muestro por pantalla num1 y num2 justo despues de insertarlos, sale el numero correctamente.

PD: se que podria hacerlo todo en una clase y quitarme de problemas, pero es algo que me gustaria saber para mas adelante xD

Imperium

A mi me paso eso el otro dia y no lo solucione LOL

Yandr0s

Por una parte tienes que definir un constructor para la clase operaciones.

De todas formas, Si main llama a operaciones, y operaciones llama a main... tal como lo tienes seria un bucle infinito del horror XD

SkOi

Pasa num1 y num2 como parámetros a la clase operaciones.

Yandr0s

#1

Main
operaciones

#6 ya, el this no es necesario, aunque es recomendable, y te acabas acostumbrando xD

1 respuesta
zoeshadow

#5 Gracias! xD, al final no hay que poner el this ni nada, basta con

operaciones op = new operaciones(num1,num2);

Era una tonteria pero madre mia, que dolor de cabeza XD

1 respuesta
tOWERR

¿Por que no te creas los metodos suma, resta, multiplicacion y division en la clase operaciones y ha esos metodos les pasas los numeros como parametros. Mira te dejo como quedaria cada clase:

  • Clase Main:
    spoiler
    • Clase operaciones:
      spoiler
      No te compliques tanto la vida, es mas sencillo de lo que crees. Espero que te sirva.
      Si necesitas alguna ayuda MP.

      Un saludo.
3 respuestas
zoeshadow

#7 Entendido, sin duda tiene pinta de ser una forma mucho mas limpia y correcta de hacerlo, muchas gracias =)!

T

No compendo porque declaras num1 y num2 en la clase para redeclararlos en el main. Al hacer esto cuando modificas num1 y num2 dentro de tu main estas modificando las variables locales num1 y num2 de tu main y no num1 y num2 de tu clase. Tál y como tienes el código en #1 tus variables num1 y num2 de la clase no se inicializan por lo que cuando haces el get estas devolviendo "null" y tu función espera retornar un int .

Si declaras una variable en una clase esta será visible para todas las funciones de la clase. Si la declaras dentro de una función normalmente solo será visible dentro de esta función. Normlamente el ámbito de una función va de "dentro" para "afuera".

Personalmente la opción que encuentro más bonita es la de #7 .
Piensa también que un get o un set funciona como una función cualquiera, es decir que no tiene ninguna diferencia con tu función suma etc.

JuAn4k4

El fallo no creo que sea una tonteria eh, va mas tirando a un fallo gordo.

#7 Entonces Operaciones es una clase Util y no pinta nada declarar un objeto Operaciones como tal.

Estas haciendo un metodo, que podria ser perfectamente estatico para sumar dos numeros, tiene mas sentido inicializar la clase con los dos valores y luego dejarla a ella que sepa que tiene que hacer con ellos.

Wasd

Este solo usa una clase, y en caso de error te informa:

spoiler
1 respuesta
tOWERR

La solución de #11 es más simple, yo le hice 2 clases porque el utilizaba 2 clases, pero en 1 sola clase lo puede hacer también perfectamente.

zoeshadow

Mas que nada queria hacerlo en dos clases para irme acostumbrando, cierto que para un ejercicio tan sencillo es casi mejor hacerlo en una clase pero bueno xD

Gnos1s

Eso de empezar con Java sin haber explicado antes qué es la OO...

1 respuesta
zoeshadow

#14 La teoria la hemos dado, lo que no habiamos dado es sintaxis y cosas así

Usuarios habituales