黑马程序员——关于两个int类型的数值交换
2014-03-04 03:18
274 查看
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
交换两个int类型的数值int s1,;
int s2;
①、首先在不封装成函数的情况下,有以下3种交换方法:
②、其次,在封装成函数时,常见的错误封装方式为
public static void swap(int a,int b){}
int a=3;
int b=5;
swap(int a,int b)
System.out.println("a="+a+"\t"+"b="+b);
由于byte,short,int,long,float,double,Boolean这些属于Java的基本数据类型,在作为参数传递过程中,他们只能传递数值。所以说即使在上述函数中完成了a ,b 的交换也仅仅是在函数内完成的交换,离开函数就被释放。在这种情况下,除非s1,s2是静态变量,否则无法交换。
③、为完成两个非静态int 类型数值的交换,我们可以从两方面出发:
1、定义有返回值的函数,例如:
public static int swap(int a,int b)
{
return b;
}
在主函数中利用稍作修改,可以实现交换,但是仍算不上方法封装。
2、新建一个包含两个数值的类,利用类对象进行传递,例如:
class Swap
{
int x, y;
public Swap(int x, int y)
{
this.x = x;
this.y = y;
}
}
class JavaDemo
{
public static void main(String[] args)
{
int x = 3;
int y = 4;
System.out.println("x: " + x + ", y: " + y);
Swap swap = new Swap(x, y);
x = swap.y;
y = swap.x;
System.out.println("x: " + x + ", y: " + y);
}
}
通过对象new Swaper(x, y),调用其内部成员变量完成赋值。
参考引用数据类型:类,接口,数组,当形式参数是这些引用数据类型时可以完成传递:
class Swaper
{
int a;
int b;
}
class SwapTest
{
public static void main(String[] args)
{
Swaper sw=new Swaper();
sw.a=3;
sw.b=5;
swap(sw);
}
public static void swap(Swaper sw)
{
int temp;
temp=sw.a;
sw.a=sw.b;
sw.b=temp;
}
}
这里利用引用类型中的类封装了两个int 类型数值,传递类对象完成交换。
ps:这里主要加深对数据类型:基本数据类型,传递值
引用数据类型,传递地址
两种类型在作为形式参数过程中,传递的值作用区间的深入理解。
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
交换两个int类型的数值int s1,;
int s2;
①、首先在不封装成函数的情况下,有以下3种交换方法:
int temp; temp=s1; s1=s2; s2=temp;
s1=s1+s2; s2=s1-s2; s1=s1-s2;
s1=s1^s2; s2=s1^s2; s1=s1^s2;
②、其次,在封装成函数时,常见的错误封装方式为
public static void swap(int a,int b){}
int a=3;
int b=5;
swap(int a,int b)
System.out.println("a="+a+"\t"+"b="+b);
由于byte,short,int,long,float,double,Boolean这些属于Java的基本数据类型,在作为参数传递过程中,他们只能传递数值。所以说即使在上述函数中完成了a ,b 的交换也仅仅是在函数内完成的交换,离开函数就被释放。在这种情况下,除非s1,s2是静态变量,否则无法交换。
③、为完成两个非静态int 类型数值的交换,我们可以从两方面出发:
1、定义有返回值的函数,例如:
public static int swap(int a,int b)
{
return b;
}
在主函数中利用稍作修改,可以实现交换,但是仍算不上方法封装。
2、新建一个包含两个数值的类,利用类对象进行传递,例如:
class Swap
{
int x, y;
public Swap(int x, int y)
{
this.x = x;
this.y = y;
}
}
class JavaDemo
{
public static void main(String[] args)
{
int x = 3;
int y = 4;
System.out.println("x: " + x + ", y: " + y);
Swap swap = new Swap(x, y);
x = swap.y;
y = swap.x;
System.out.println("x: " + x + ", y: " + y);
}
}
通过对象new Swaper(x, y),调用其内部成员变量完成赋值。
参考引用数据类型:类,接口,数组,当形式参数是这些引用数据类型时可以完成传递:
class Swaper
{
int a;
int b;
}
class SwapTest
{
public static void main(String[] args)
{
Swaper sw=new Swaper();
sw.a=3;
sw.b=5;
swap(sw);
}
public static void swap(Swaper sw)
{
int temp;
temp=sw.a;
sw.a=sw.b;
sw.b=temp;
}
}
这里利用引用类型中的类封装了两个int 类型数值,传递类对象完成交换。
ps:这里主要加深对数据类型:基本数据类型,传递值
引用数据类型,传递地址
两种类型在作为形式参数过程中,传递的值作用区间的深入理解。
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
相关文章推荐
- 交换两个int类型数值(总结分析,理解记忆)
- JavaScript 变量/命名规则/交换两个数值类型的变量
- 请实现这两个变量数值的交换(比如int a = 10,int b = 20变成int a = 20,int b = 10),要求写3种或3种以上的实现方式
- 实现两个int类型变量值的交换,要求不使用中间变量
- 交换两个int类型数的值的3种方法
- 有两个 int 类型的数 a 和 b,请在不使用中间变量的情况下交换 a,b 的值
- 不借助第三个变量交换两个数值类型变量的值
- Java-实现两个int类型变量值的交换,要求不使用中间变量
- 不使用第三个变量交换两个int类型变量的值
- java中,数值计算时的类型转换 ( 两个int类型相加,赋值给double )
- 关于利用异或操作来交换两个数值的方法
- 关于C#中的两个short类型相加变成了int类型
- java实现两个int类型的数的交换
- 使用交换函数交换两个变量的值(以int类型为例)的错误用法以及正确用法
- C#复习_不使用第三个变量交换两个int类型变量的值
- 学习笔记——关于C#中的两个short类型相加变成了int类型
- Java中交换两个int类型变量的方法汇总
- 不用第三方变量交换两个int类型的值 php
- 解决两个float类型的数值相减,精确度不准确的问题
- 不用中间变量进行两个int值的交换