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}; ...
随机推荐
- 蓝牙4.0模块,AT指令集
一,LED状态 二,蓝牙模块有两种通信模式 1,AT指令模式 2,数据透传模式 三.AT指令程序设计 1.设置模块的名字 void usart3_send_str(char *pbuf) { whil ...
- 数据结构实验之二叉树四:(先序中序)还原二叉树 (SDUT 3343)
#include <bits/stdc++.h> using namespace std; struct node { char data; struct node *lc, *rc; } ...
- Friends (ZOJ - 3710)
Problem Alice lives in the country where people like to make friends. The friendship is bidirectiona ...
- vue中父组件如何监听子组件值的变化
vue中我们会遇到很多父子组件通信的需求, 下面简单列一下,父子组件通信的几种情况 1:父组件向子组件传值:使用prop向子组件传值: 2:子组件实时监听父组件传来的值的变化:使用watch去监听父组 ...
- Irrlicht引擎剖析一
代码风格: 1.接口以I开头,实现以C开头,保存数据的结构体以S开头 2.函数名以小写字母开头,变量以大字母开头 3.接口的公共函数,其参数大部分给了默认值 4.采用名字空间 名字空间i ...
- [题解] [SDOI2017] 序列计数
题面 题解 和 SDOI2015 序列统计 比较像 这个无非就是把乘改成了加, NTT 改成了 MTT 再加上了一个小小的容斥 : 拿所有方案减去不合法方案即可 Code #include <a ...
- vue draggable 火狐拖拽搜索问题
最近在使用vuedraggable做导航时候,谷歌拖拽是没问题的,但是在火狐测试时候,拖拽时候是可以成功,但是火狐还是打开了一个新的tab,并且搜索了,一开始想着是阻止默认行为,但是在@end时间中阻 ...
- ubuntu 安装go
sudo apt install golang-go
- pwn学习日记Day18 《程序员的自我修养》读书笔记
知识杂项 obj文件:当前源代码编译成二进制目标文件 exe文件:将.obj文件与库文件.lib等文件链接生成的可执行文件 一个现代编译器的主要工作流程如下: 源程序(source code)→ 预处 ...
- Linux设备驱动程序 之 get_free_page
get_free_page 如果模块需要分配大块的内存,使用面向页的分配会有很多优点: 分配页面可使用下面的函数: unsigned long get_zeroed_page(gfp_t gfp_ma ...