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}; ...
随机推荐
- 鬼子进村 fhq-treap
鬼子进村 fhq-treap 题面 观察题目发现可用平衡树做:每次鬼子拆家即从平衡树中加入被拆的节点:每次村民修房子都向平衡树中删除该节点:每次查询时,只需要求出其后驱与前驱,易知nxt-pre-1为 ...
- Hihocoder #1333 : 平衡树·Splay2
1333 : 平衡树·Splay2 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:好麻烦啊~ 小Hi:小Ho你在干嘛呢? 小Ho:我在干活啊!前几天老师让我帮忙 ...
- WebService基础学习
参考 WebService基础学习(一)—基础知识:http://www.cnblogs.com/yangang2013/p/5708647.html WebService基础学习(二)—三要素:ht ...
- JAVA安全漫谈1-8笔记
一.反射篇1 classloader就是java的类加载器,告诉虚拟机如何加载这个类.默认情况下根据类名来加载类,类名必须是完整路径 public class class_init { { Syste ...
- Flutter设置Container的最大最小宽高
Flutter中设置Container宽高可直接通过width和height属性来设置:如下 Container( width: 100, height: 100, color: Colors.red ...
- ajax调用c#后端,发现参数没数值
之前是int的数据,名字是id 后面被改成字符串的数据,名字是encrptedId 因为名字不匹配,导致找不到数值.只需要把js里调用传递的参数名字改一下,或者C#后端,继续保持原来的名字
- the requested PHP extension dom is missing from your system
composer 出错 the requested PHP extension dom is missing from your system 解决办法 yum install php70w ...
- FYI是什么意思?
FYI是For Your Information的缩写,英语解释为:提供给您的信息,供您参考,是当前在外企中流行的英文缩写,为工作用语,常用于工作的电子邮件中. 文章来源:刘俊涛的博客 欢迎关 ...
- PHP学习之分页类
<?php $page = new Page(2, 40); var_dump($page->allUrl()); class Page { //每页显示多少条数据 protected $ ...
- protected-broadcast 规范使用系统应用组件自定义广播
1. protected-broadcast 规范使用系统应用组件自定义广播 参考:https://blog.csdn.net/TaylorPotter/article/details/7019424 ...