Hola caludo!
Antes que nada te pongo en conocimiento que cuando vayas a introducir código en el foro, antes presiona el botón # (insertar codigo) que se encuentra arriba del campo de escritura, te saldrán las etiquetas: [code] [/code] y a continuación procede a pegar el codigo en medio de esas etiquetas. Ejemplo: [code]aquíElCódigo ..[/code]. Una vez escrito todo pulsa el botón previsualizar para comprobar si se ve bien y cuando estes conforme con lo previsualizado procede a publicar tu tema.
Respecto a tu duda. Para lograr lo que quieres usando un método tipo procedimiento (void) tienes que tener unos cuantos puntos claros, lo primero es saber que en una clase pueden existir variables generales
(de uso general o global en todo el código de la clase) y variables locales a un método (de uso exclusivo para el método donde son creadas). Un método (tipo funcion o tipo procedimiento) puede interactuar con variables generales o con variables locales, o con ambas al mismo tiempo, algo que debes tener claro es que no basta con pasarle como parámetros las variables num3 y num4 (intercambio(num3,num4);) al método intercambio para conseguir lo que quieres, también hace falta que las variables num3 y num4 estén relacionadas al método "intercambio" para que sufran o implementen los cambios, y también que estén vinculadas al metodo main para poder imprimirlas por pantalla mediante una instrucción "System.out.println();" Como hacer para que ambos métodos puedan usar una misma variable? Pues declaramos esas variables como variables generales de la clase.
Las variables locales de un método no las conoce otro método aunque tengan el mismo nombre (no son las mismas), a diferencia de las variables generales de una clase, donde si un método realiza un cambio en esta, el cambio sera notorio para todos los demás métodos que usen tal variable.
Si en tu clase "Estudio"tenemos las variables generales num3 y num4, las cuales usamos en el cuerpo de el método "intercambio" para que sufran un cambio y luego las usamos en el método main en una instruccion "System.out.println()" pues si conseguirás lo que quieres.
A continuación dejo una nueva clase creada a partir del código de tu clase "Estudio", te sugiero que la analices teniendo en cuenta lo que te he comentado.
public class IntercambiarValores
{
private static int num3=10;//Variable general o global para toda la clase
private static int num4=20;//Variable general o global para toda la clase
public static void main(String []args)
{
int num1=2;//Variable local solo para uso del método main
int num2=5;//Variable local solo para uso del método main
int prov;//Variable local solo para uso del método main
System.out.println("Valor inicial de las variables num1 y num2:\nnum1 = " + num1 +"\nnum2 = "+num2);
prov = num1;
num1=num2;
num2=prov;
System.out.println("\nValor actual de las variables num1 y num2:\nnum1 = " + num1 +"\nnum2 = "+num2);
System.out.println("\nValor inicial de las variables num3 y num4:\nnum3 = " + num3 +"\nnum4 = "+num4);
intercambio(num3,num4);
System.out.println("\nValor actual de las variables num3 y num4:\nnum3 = " + num3 +"\nnum4 = "+num4);
}
private static void intercambio(int num/*//Variable local solo para uso del método intercambio*/,int nume/*//Variable local solo para uso del método intercambio*/)
{
int prov;//Variable local solo para uso del método intercambio
prov = num;//Una variable local y una general
num3 = num4; //Ambas variables generales o globales para el de el código en general de la clase
num4 = prov;//Una variable general y una variable local
}
}
Cualquier duda no dudes en preguntar.
Saludos!