public class test
{
public void trans(int x1,int x2)
{
int tmp;
tmp=x1;
x1=x2;
x2=tmp;
}
public static void main (String args[])
{
int x1;
int x2;
x1=1;
x2=2;
test theTest=new test();//加这句??怎么实现转换x1和x2
theTest.trans(x1,x2);
System.out.println(x1);
System.out.println(x2);
}
}
本人刚学java,请问如何实现X1和X2的交换
{
public void trans(int x1,int x2)
{
int tmp;
tmp=x1;
x1=x2;
x2=tmp;
}
public static void main (String args[])
{
int x1;
int x2;
x1=1;
x2=2;
test theTest=new test();//加这句??怎么实现转换x1和x2
theTest.trans(x1,x2);
System.out.println(x1);
System.out.println(x2);
}
}
本人刚学java,请问如何实现X1和X2的交换
一种解决办法是:自己写一个Int类
public class MyInt
{
private int x=0;
public void setX(int x){this.x=x}
public int getX(){return x)
}trans函数改成
public viod trans(MyInt x1, MyInt x2)
{
int t=x1.getX();
x1.setX(x2.getX());
x2.setX(t);
} 不能用Integer类代替int,因为Integer类没有改变自身值的函数.
{
int x1;
int x2;
public void trans(int x1,int x2)
{
int tmp;
tmp=x1;
this.x1=x2;
this.x2=tmp;
}
public static void main (String args[])
{
test theTest=new test();//加这句??怎么实现转换x1和x2
theTest.trans(theTest.x1,theTest.x2);
System.out.println(theTest.x1);
System.out.println(theTest.x2);
}
}
1、因为trans方法中的x1,x2是指参数x1,x2,只对该方法可见,也就是说你只是调换这两个参数的值,方法一执行完,
这两个“参数”就从内存中释放了。
2、你传的是方法外面的x1、x2,但由于与参数同名,在方法中系统认为x1,x2是参数的x1,x2。
private int x;
private int y ;
public Change(){
}
public void trans(int x,int y){
this.x = x + y ;
this.y = this.x -y;
this.x = this.x - this.y;
}
public int getX(){
return this.x;
}
public int getY(){
return this.y;
}
public static void main(String[] args) {
Change change = new Change();
int x=1,y=2;
change.trans(x, y);
System.out.println("x="+change.getX()+" y="+change.getY());
}
}
{
public static void change(int[] num)
{
num[0]=num[0]+num[1];
num[1]=num[0]-num[1];
num[0]=num[0]-num[1];
}
public static void main (String args[])
{
int[] num=new int[]{3,4};
change(num);
System.out.println("x="+num[0]+","+"y="+num[1]);
}
}
{
public void trans(test t)
{
int tmp;
tmp=t.x1;
t.x1=t.x2;
t.x2=tmp;
}
int x1=1;
int x2=2;
public static void main (String args[])
{
test theTest=new test();//加这句??怎么实现转换x1和x2
theTest.trans(theTest);
System.out.println(theTest.x1);
System.out.println(theTest.x2);
}
}
{
public void trans(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;//不用另外设置中间变量了:)
System.out.println("交换后的值:x="+x);
System.out.println("交换后的值:y="+y);//交换后的值
}}
public class Test{
public static void main (String[] args)
{
int x=1,y=3;;
System.out.println("交换前的值:x="+x+" y="+y);//交换前的值,
Trans t=new Trans();
t.trans(x,y);
}
}
class Trans
{
public void trans(int x,int y)
{
x=x+y; // 1
y=x-y; // 2
x=x-y;//不用另外设置中间变量了:) //3
System.out.println("交换后的值:x="+x);
System.out.println("交换后的值:y="+y);//交换后的值
}}
=====================================
这个方法好,但可能会得到overflowing...
如此这般,将会永保安康!
x = x^y;
y = x^y;
x = x^y;