Java没有引用传递机制,C#有。
Java没有引用传递机制,C#有:
public class Obj {
private Integer myValue;
public Integer getMyValue() {
return myValue;
}
public void setMyValue(Integer myValue) {
this.myValue = myValue;
}
}
public class ObjOperation {
public void changeValue(Obj obj) {
obj.setMyValue(1);
}
public void changeValue2(Obj obj) {
obj = new Obj();
obj.setMyValue(2);
}
}
Java 对象及操作类定义
public class MyApp {
public static void main(String[] args) {
Obj obj = new Obj();
obj.setMyValue(0);
System.out.println(obj.getMyValue());
ObjOperation refOperation = new ObjOperation();
refOperation.changeValue(obj);
System.out.println(obj.getMyValue());
refOperation.changeValue2(obj);
System.out.println(obj.getMyValue());
}
}
运行结果:
0
1
1
public class Obj
{
private int myValue;
public int MyValue { get => myValue; set => myValue = value; }
} public class ObjOperation
{
public void ChangeValue(Obj obj)
{
obj.MyValue = ;
} public void ChangeValue2(Obj obj)
{
obj = new Obj();
obj.MyValue = ;
} /// <summary>
/// 引用传递
/// </summary>
/// <param name="obj"></param>
public void ChangeValue3(ref Obj obj)
{
obj = new Obj();
obj.MyValue = ;
}
}
C# 对象及操作类定义
class Program
{
static void Main(string[] args)
{
Obj obj = new Obj();
obj.MyValue = ;
Console.WriteLine(obj.MyValue); ObjOperation objOperation = new ObjOperation();
objOperation.ChangeValue(obj);
Console.WriteLine(obj.MyValue); objOperation.ChangeValue2(obj);
Console.WriteLine(obj.MyValue); //引用传递
objOperation.ChangeValue3(ref obj);
Console.WriteLine(obj.MyValue); Console.Read();
}
}
运行结果:
0
1
1
2
Java没有引用传递机制,C#有。的更多相关文章
- java參数传递机制浅析
欢迎转载,转载请声明出处! ----------------------------------------- 前言: java语言中,參数的传递仅仅有一种机制.那就是值传递. 举例: 以下将通过几个 ...
- java的值传递机制
一.练习:编写Java程序,将二维数组中的行列互调显示出来. 代码1为自己编写: package com.xxgpra.CH6; public class Hangliehudiao_pra4 { p ...
- java 面向对象(六):类结构 方法(三) java的值传递机制
java的值传递机制 1.针对于方法内变量的赋值举例: System.out.println("***********基本数据类型:****************"); int ...
- Java Object 引用传递和值传递
Java Object 引用传递和值传递 @author ixenos Java没有引用传递: 除了在将参数传递给方法(或函数)的时候是"值传递",传递对象引用的副本,在任何用&q ...
- Java参数引用传递之例外:null
今天写链表的时候写了一个函数,实参是一个空链表,应该是按引用传参,但是在函数内修改了链表,外部的链表没有变化. 原来是null作为参数传递的时候,就不是引用传参了. 引自:http://blog.cs ...
- Java中引用传递
//Java中的引用传递 class Ref1{ int temp = 10 ; String Str = "hello"; } public class HelloWorld { ...
- 有关java的引用传递,直接操作对象本身。直接删除BE的value中某值
HashSet<String> refRegions = BE.get(regionName); HashSet<String> values = new HashSet ...
- java中 引用传递、值传递的理解(数组,自定义类,基本数据类型,String类)
代码部分: public static void main(String[] args) { testInt(); testString(); testArray(); testX(); } publ ...
- 如何理解java的引用传递
1. 数组的引用传递 public class TestArray { public static void changeAry1(int[] ary){ int[] ary1 = {9,9,9}; ...
随机推荐
- 2018 Nowcoder Multi-University Training Contest 1
Practice Link J. Different Integers 题意: 给出\(n\)个数,每次询问\((l_i, r_i)\),表示\(a_1, \cdots, a_i, a_j, \cdo ...
- 在centos7上使用packstack安装openstack
简介 Packstack主要是由Redhat推出的用于概念验证(PoC)环境快速部署的工具.Packstack是一个命令行工具,它使用Python封装了Puppet模块,通过SSH在服务器上部署Ope ...
- P2663 越越的组队
原题链接 https://www.luogu.org/problem/P2663 很容易看出来是个背包问题嘛: 体积是总分的一半,求最高分,每个同学选或不选,是个 01背包问题. 自信地交上去之后发 ...
- ROS机器人开发实践学习笔记1
刚刚开始学习ROS,打算入机器人的坑了,参考教材是<ROS及其人开发实践>胡春旭编著 机械工业出版社 华章科技出品.本来以为可以按照书上的步骤一步步来,但是,too young to si ...
- jboss虚拟机快照
若使用jboss,则一定要记得隔断时间拍一个快照,这样如果虚拟机坏了,则可以进行回复快照,避免再次花时间去解决问题. 拍快照:启动虚拟机,然后,操作如下. 选择,current State,右击,则可 ...
- js中那些方法不改变原来的数组对象
一.map方法 function fuzzyPlural(single) { var result = single.replace(/o/g, 'e'); //replace也不会修改原来数组的值, ...
- dll程序开发总结
1.修改生成的dll名称 VS2012中选中某个项目,项目--属性--配置属性--连接器--常规--输出文件
- oracle 中SQL 语句开发语法 SELECT INTO含义
oracle 中SQL 语句开发语法 SELECT INTO含义 在ORACLE中SELECT INTO是如何使用的,什么意思?和SQL SERVER的不一样? 和sqlserver的不一样sql ...
- 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_1.页面发布-需求分析
先静态化,并存储到gridFS 然后,发消息给MQ,MQ接收到消息通知给所有监听他的Cms Client. Cms client从gridFS读取页面下载到自己的服务 业务流程如下:1.管理员进入管理 ...
- Spring事务管理1-------环境搭建
Spring将事务管理分成了两类: * 编程式事务管理 手动编写代码进行事务管理,开发中使用较少 * 声明式事务管理 A - 基于TransactionProxyFactoryBean的方式.开发使用 ...