作者kikilalagirl (kikilala)
看板java
标题[问题] Java 交换两数 的写法 ?
时间Fri Jan 1 19:39:56 2016
Java 没有所谓的 call by address , 也没有 call by reference .
所以 交换两数 就用 call by object .
底下两种方法(方法一与方法二) , 都可以实作 交换两数 .
请问大家 , 应该要用哪一种方式去实作比较好呢 ? 理由是什麽 ?
( 又或者这两种方式都不好 , 应该采用什麽方式来实作呢 ? )
<方法一>
档名 MyIntObj.java
------------------
public class MyIntObj
{
int int_value;
public MyIntObj(int int_value)
{
this.int_value = int_value;
}
public static void swap_int(MyIntObj x, MyIntObj y)
{
int temp_value = x.int_value;
x.int_value = y.int_value;
y.int_value = temp_value;
}
public static void main(String args[])
{
MyIntObj x = new MyIntObj(3);
MyIntObj y = new MyIntObj(5);
System.out.println("before swap:");
System.out.println("int - x = " + x.int_value);
System.out.println("int - y = " + y.int_value);
swap_int(x,y);
System.out.println("after swap:");
System.out.println("int - x = " + x.int_value);
System.out.println("int - y = " + y.int_value);
}
}
<方法二>
档名 MyIntObj.java
------------------
class Number
{
int int_value;
public Number(int int_value)
{
this.int_value = int_value;
}
public void swap(Number p,Number q)
{
int temp_value = p.int_value;
p.int_value = q.int_value;
q.int_value = temp_value;
}
}
public class MyIntObj
{
public static void main(String args[])
{
Number x = new Number(3);
Number y = new Number(5);
System.out.println("before swap:");
System.out.println("int - x = " + x.int_value);
System.out.println("int - y = " + y.int_value);
x.swap(x,y);
System.out.println("after swap:");
System.out.println("int - x = " + x.int_value);
System.out.println("int - y = " + y.int_value);
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.121.247.34
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1451648398.A.993.html
1F:→ Frozenmouse: 两边根本都一样,只差在 main 写哪而已吧… 01/01 21:27
2F:推 baconcsie: 同上… 01/01 22:28
3F:→ cha122977: 有call by value啊…你用primative type就是… 01/02 01:19
4F:→ cha122977: primitive 01/02 01:20
5F:→ eieio: 两边都一样 01/02 03:55
6F:→ kikilalagirl: 方法一 有1个class ; 方法二 有两个class (被打 01/02 18:12
7F:推 k47100014: 如果程式复杂非得要分类的话就N个class 写简单的作业一 01/04 02:35
8F:→ k47100014: 个就好了 01/04 02:35
9F:→ weakstudy: 这方法一和方法二,讲的是同样的方法 06/27 20:38