style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

como enviar un entero de una clase a otra con el método get set

hola amigos mi pregunta es como enviar un entero de una clase a otra con el método get set,

saludosss

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

class Una {    Otra o;  

class Una {
   Otra o;
   void metodo() {
       o.setEntero( 1 );
    }
}

class Otra {
     void setEntero( int entero ) {
          System.out.println("Entero recibido: "+ entero );
     }
}

me marca un error

al momento de compilar la clase Otra me da el siguiente error, aclaro que las dos clases estan en pestañas diferentes dentro del mismo paquete

saludosss

encontre este ejemplo que menciono en esta pagina

este ejemplo dice lo que habia preguntado lo unico que quiero lograr es pasar un entero sin multiplicarlo

https://www.youtube.com/watch?v=G7CLldZirkQ

saludos

Imagen de Sr. Negativo

re: Comoenviar un entero

El código funciona. Solo te falta el o= new Otra(); dentro del método "metodo".

public class Control{
    public static void main(String[] args) {
        Una u=new Una();
        u.metodo();
    }
}

class Una {
   Otra o;
   void metodo() {
    o=new Otra();
       o.setEntero( 1 );
    }
}

class Otra {
     void setEntero( int entero ) {
          System.out.println("Entero recibido: "+ entero );
     }
}

Imagen de ezamudio

y eso?

Y eso de qué sirve? cada vez que llamas metodo, se crea una instancia de Otra y se le pasa un entero. Ah y como es variable de instancia, se queda guardada la última instancia...

Bueno supongo que es para aprender o algo así.

si es cierto

ya probe tu programa y si funciona si es a si como queria entenderlo :) cuando compilo la clase control me da el resultado del entero y todo va bien.

el programa funciona bien pero al momento de compilar tambien la clase Otra me marca el siguiente error: class does not have a main method agregue el metodo main y ya compilan los dos

public static void main(String[] args) {

}

gracias saludosss

es para aprender

si solo para aprender saludos

variable multiplicada de metodo get and set

hola amigos haciendo los ejemplos que me pasaron a qui y buscando por internet hice este programa (la clase enviar y la clase recibir en diferentes ventanas) usando los metodos get - set,

la duda es:
que en la clase enviar no puedo hacer que la variable multiplicador se multiplique por la variable num al momento de hacer clic en el jbutton.

lo que quiero lograr es que al hacer clic en el jbutton me de como resultado 8 en la clase recibir y mostrarlo en System.out.println("el numero recibido es "+transferencia_recibir.getNum());

a qui el programa saludosssss y gracias

///////////////////////////////////////////////////////////////////////////////////////////// esta es la clase enviar
package transferencia;

public class enviar extends javax.swing.JFrame {
   
    int num;
    int multiplicador;
   
    public enviar() {
        initComponents();
    }
   
    public enviar(int a){
    num = a;
    }
   
    public void setNum(int a){
    num = a;
   
    }
   
    public int getNum(){
    return num*multiplicador;   // a qui deseo que se multipique al hacer clic en el jbutton
       
    }

@SuppressWarnings("unchecked")

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
    multiplicador=8; // a qui es donde le asigno el valor de 8 a la variable multiplicador para que sea multiplicada con la variable num. y me de
                                  //el 8 como resultado en la clase recibir
                                 
 System.out.println(multiplicador);
    }  

 public static void main(String args[]) {
        /* Set the Nimbus look and feel */
java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new enviar().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                    
    private javax.swing.JButton jButton1;
    // End of variables declaration                    
}

///////////////////////////////////////////////////////////////////////////////////////////// esta es la clase recibir

package transferencia;

public class recibir {
   
    public static void main(String[] args) {
       
        enviar transferencia_recibir = new enviar();
               
        transferencia_recibir.setNum(1);  // este valor de 1 multiplica por 1 para que no afecte
       
        System.out.println("el numero recibido es "+transferencia_recibir.getNum());  // a qui deseo recibir el 8 mandado desde la clase enviar al dar clic  
                                                                                                                                                   // en el jbutton como mencione al momento de compilar el programa                                                                                                                                            
        }    
   
    }

El método main es el punto de

El método main es el punto de entrada de tu programa. En tu código tienes dos: uno donde creas un objeto enviar y muestras la ventana y otro donde creas otro objeto enviar, llamas al método setNum e imprimes con System.out.println. Estos son dos programas independientes y no tienen relación uno con otro ( es como si iniciaras notepad y paint y quisieras que lo que pasa en uno se reflejara en el otro )

Para hacer lo que quieres, tienes que poner el código en un solo método main,

... // el main único, puede estar en cualquier de las dos clases
 public static void main(String args[]) {
        /* Set the Nimbus look and feel */
java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                enviar e = new enviar()
                e.setVisible(true);
                e.setNum(1);
            }
        });
    }

Ahora el tema se complica un poco porque estás usando una ventana, que corre en otro "hilo de ejecución" por lo tanto si pones el println debajo del "invoke later" se va a ejecutar de inmediato y va a imprimir 0 ( porque el multiplicador es 0 y 1 x 0 = 0 ) Esto se debe a que aún no has presionado el botón que va a ponerle el valor de 8.

Me parece que te beneficiaría más primero entender y que te quede bien claro como funcionan las llamadas entre métodos y luego puedes agregarle más complejidad usando una interfaz gráfica. Una tercera opción sería que estos dos programas se comunicaran realmente entre sí que es posible con algún protocolo de red o con mediante el sistema de archivos, pero esto es aún más avanzado.

Para el ejemplo de que un número multiplique a otro en dos clases distintas sin interfaz gráfica podría ser así:

class Multiplicador  {
    private int numero;
    private int multiplicador;

    public void inicializaMultiplicador( ) {
       this.multiplicador = 8;
    }
    public void setNumero( int n ) {
        this.numero = n;
   }
   public int getResultado() {
       return this.multiplicador * this.numero;
   }
}
class OtraClase {
    public static void main( String ... args ) {
         Multiplicador m = new Multiplicador();
         m.inicializaMultiplicador();
         m.setNumero( 1 );
         System.out.println( m.getResultado() ); // imprime 8 cuando ejecutas "OtraClase"
    }
}

En ese ejemplo no hay más que un main y la ejecución se realiza línea por línea.

Espero que esto te sirva.

p.d. En Java se siguen ciertas convenciones para los nombres de las clases, variables, métodos, etc, esto es solo cuestión de estilo y se recomienda seguir, en el código qu epuse estan los ejemplos de como nombrarlos ( la clase con mayúscula, camelCase en vez de separado_asi etc. )

Por cierto, hacer esto mismo

Por cierto, hacer esto mismo con una interfaz gráfica no es muy distinto. Se puede usar la misma clase Multiplicador pero en vez de poner la lógica en el método main, se pone en el cuerpo del actionListener

Se vería así:

import javax.swing.*;
import java.awt.BorderLayout;
class Ventana {
    JFrame frame = new JFrame();
    JButton calcular = new JButton("Calcular");
    JTextField resultado = new JTextField();
    Multiplicador m = new Multiplicador();
    public Ventana() {
        calcular.addActionListener( ae -> {
            m.inicializaMultiplicador();
            m.setNumero( 1 );
            resultado.setText( Integer.toString(m.getResultado()));
        });
        resultado.setEditable(false);
        frame.add( resultado, BorderLayout.NORTH );
        frame.add( calcular );
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible( true );
    }
    public static void main( String ... args ) {
        Ventana v = new Ventana();
    }
}

gracias por responder mi duda

si la verdad es que estoy intentando aprender el metodo set get y se me a complicado pero voy a tratar pirmero con tu ejemplo y despues buscar mas informacion por internet para poder entenderlo mejor

un gran saludo y muchas gracias por tus respuestas

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">