打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java笔记——值调用和引用调用
/*********值调用***********/
class CallbyValue{
 void change(int a,int b)
  {
  a*=a;
  b+=b;
  }
}
class test2
{
 public static void main(String[] args)
 {
  int i=10;
  int j=20;
  System.out.println("Before call i= "+i+"\t"+"j="+j);
  CallbyValue obj=new CallbyValue();
  obj.change(i,j);
  System.out.println("After  call i= "+i+"\t"+"j="+j);
 }
}
 
/********引用调用************/
 
class Test{
 int i;
 int j;
 Test(int a,int b)  //构造函数不能加修饰符,切记
  {
  i=a;
  j=b;
  }
 void change(Test obj) //对象引用作为形参
 {
  obj.i*=obj.i;
  obj.j+=obj.j;
 }
}
class Callbyref
{
 public static void main(String[] args) 
 {
  Test obj1=new Test(10,20);
  obj1.change(obj1); //注意这里,将对象引用obj1作为实参传递个obj1的方法change
  System.out.println("After  call obj1.i= "+obj1.i+"\t"+"obj1.j="+obj1.j);
 }
}
 
/************对象作为返回值**************/
class Test{
 int i;
 int j;
 Test(int a,int b)
  {
  i=a;
  j=b;
  }
 Test change(Test obj)
 {
  obj.i*=obj.i;
  obj.j+=obj.j;
  return obj;
 }
}
class Callbyref
{
 public static void main(String[] args)
 {
  Test obj1=new Test(10,20);
  Test obj2=new Test(6,8);
  Test obj3;
  obj1.change(obj1);
  obj3=obj2.change(obj2);
  System.out.println("After  call obj1.i= "+obj1.i+"\t"+"obj1.j="+obj1.j);
  System.out.println("After  call obj1.i= "+obj3.i+"\t"+"obj1.j="+obj3.j);
 }
}
 
/********改进版************/
class Test{
 int i;
 int j;
 Test(int a,int b)
  {
  i=a;
  j=b;
  }
 Test change(Test obj)
 {
  obj.i*=i;
  obj.j+=j;
  return obj;
 }
}
class Callbyref
{
 public static void main(String[] args)
 {
  Test obj1=new Test(10,20);
  Test obj2=new Test(6,8);
  Test obj3;
  obj1.change(obj1);
  System.out.println("After  call obj1.i= "+obj1.i+"\t"+"obj1.j="+obj1.j);
  obj3=obj2.change(obj1);
  System.out.println("After  call obj1.i= "+obj3.i+"\t"+"obj1.j="+obj3.j);
  obj3=obj2.change(obj2);
  System.out.println("After  call obj1.i= "+obj3.i+"\t"+"obj1.j="+obj3.j);
 }
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
最全的Java笔试题库之选择题篇-总共234道【1~60】
java编程题:以三种不同方式输出九九乘法表(java)
软件工程师( Java程序设计)阶段测试题
Sun certificate java programmer Test(3)
Java中try catch finally语句中含有return语句的执行情况(总结版)...
Java finally 语句到底是在 return 之前还是之后执行?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服