1.写一个方法,交换两个变量,传入参数为两个int型变量
即
不可以使用任何其他的类
int a=10;int b=30
要求有一个方法swap(int m,int n)指定传入的只能是两个int参数,而且只能是int型
调用swap后,a==30,而b==10
即
不可以使用任何其他的类
int a=10;int b=30
要求有一个方法swap(int m,int n)指定传入的只能是两个int参数,而且只能是int型
调用swap后,a==30,而b==10
{
int temp = m;
m = n;
n = temp;
]
只传入两个int类型的变量,没有第三个
完成了交换功能
b=a-b;
a=a-b;
呵呵
//Construct the application
//Main method
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a= " + a + "; b= " + b);
a = a + b;
b = a - b;
a = a - b;
System.out.println("a= " + a + "; b= " + b);
}
}
其实我自己知道没法改,只是最近工作需要,在学C#,学过Java后看C#的人都会感觉C#和Java太相似了,不知不觉中就会拿两者相比较,对于传值和传引用上,C#做的更好,可以交换两个变量,而不使用其他类,用了关键字ref,方法就是void swap(ref int a,ref int b),因此我就一直想Java如何
用最简单的方法来交换呢,实质也就是传递引用,因为我始终还是热爱和忠于Java的,因此我一直希望Java在这点上不会输于C#
a,b为类属性,swap为类方法,且同为static/nonstatic;
我反而觉得java更简单,C#有点落后呀,还有什么out,ref,比较讨厌
构造IntHandler对象也许可以满足你的需求
而且这些基础是不容有一点差错的,否则越积越多,对于程序的影响是极大的。
象刚才第一个给出代码的朋友,很明显是凭自己的想象,根本没有自己亲历亲为的调试过,因此
他一定还以为自己正确呢,实际上Java并不简单,没有对Java的一些基础的机制的深刻理解,光会用一些API,跟着书本step by step地按部就班,无论如何是不可能掌握Java的。
static int p=10;
static int q=30;
public static void main(String []args)
{
swap(0,0);
System.out.println("p="+p+",q="+q);
}
public static void swap(int a,int b)
{p=p+q;
q=p-q;
p=p-q;}
}
-------------------------
看一下可以吗?
this.m = n;
当然只要是中肯的回答,都给分。准备结贴
class test{
int a;
int b;
public void swap(int a,int b){
this.a=b;
this.b=a;
}
}
class A {
private B b;
private void xxx() {
yyy(b);
}
private void yyy(ref B argB) //这里由于我从来不用ref,所以先后顺序可能错了
{
if (argB == null)
{
argB = new B();
}
}
}
大家认为有必要ref吗,有必要作为参数吗?
class A {
private B b;
private void xxx() {
yyy(b);
}
private void yyy(ref B argB) //这里由于我从来不用ref,所以先后顺序可能错了
{
if (argB == null)
{
argB = new B();
}
}
}
大家认为有必要ref吗,有必要作为参数吗?
至少不用写很多的js,来隐藏传递变量啊,啥的。不过要是真是大型应用,好像没有用.net的。(好像没看到多少拿.net来做服务器集群的)
b=a-b;
a=a-b;这个题好像出现过
1.temp=a;
a=b;
b=temp;
2,a=a+b;
b=a-b;
a=a-b;
3,a^=b;
b^=a;
a^=b;
java方法都是传值的,想用形参和形参交换来实现2个数互换是不可能的。最多也是用包装类通过类的2个域交换实现2个数交换。