JAVA1

 

 
题目:
Code:
  1. 首先我定义了一个类:   
  2. sealed  class UserModel   
  3.     {   
  4.         private string _UserName;   
  5.         private int _UserAge;   
  6.   
  7.              public int UserAge   
  8.         {   
  9.             get { return _UserAge; }   
  10.             set { _UserAge = value; }   
  11.         }   
  12.                public string UserName   
  13.         {   
  14.             get { return _UserName; }   
  15.             set { _UserName = value; }   
  16.         }   
  17.                public UserModel(string name, Int32 age)   
  18.         {   
  19.             UserName = name;   
  20.             UserAge = age;   
  21.         }   
  22.               public  void DisplayMember()   
  23.         {   
  24.             Console.WriteLine("UserName:{0},UserAge:{1}",this.UserName,this.UserAge);   
  25.         }   
  26.   
  27.          public static void SendUserDateByValue(UserModel user)   
  28.        {   
  29.            user.UserAge = 34;   
  30.            user = new UserModel("周宇朝", 21);   
  31.        }   
  32.     }   
  33.   
  34. Main函数:   
  35.            UserModel Model = new UserModel("优快云", 10);   
  36.             UserModel.SendUserDateByValue(Model);   
  37.             Model.DisplayMember();   
  38.             Console.ReadLine();  

 

 

看代码,在心中模拟,选择正确的输出结果!


 
 
备选答案: A : UserName:周宇朝,UserAge:34
 B : UserName:优快云,UserAge:10
 C : UserName: 周宇朝,UserName:21
 D : UserName:优快云,UserAge:34
 
你的回答:B
 
回答结果:
 
答案:D
 
答案详解:这里传入的是引用,在复制的过程中,复制了指向调用者的对象的引用。 这里传入的其实是一个引用,在复制的过程中,复制了指向调用者的对象的引用,在调用SendUserDataByValue()方法与调用者指向同一个对象,所以可以改变状态数据,但是在调用的方法体内,重新实例化,却是不行的。Andrew Troelsen的书中写道:If a reference type is passed by value, the callee may change the values of the object’s state data but not the object it is referencing. 如果按值传递引用类型,被调用者可能改变对象的状态数据的值,但不能够改变所引用的对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值