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}; ...
随机推荐
- 添加tag
创建tag git tag -a V1 -m 'release 1' 创建了本地一个版本v1,同时添加注释 release 1 查看tag git tag 显示注释 git show V1 本地tag ...
- 2018 Nowcoder Multi-University Training Contest 10
Practice Link J. Rikka with Nickname 题意: 给出\(n\)个字符串,要求依次合并两个串\(s, t\),满足将\(t\)合并到\(s\)中变成\(r\),使得\( ...
- pymysql基本使用
导入模块 import pymysql 连接(看一下password有没有,没有的话会怎么样,有很多参数,有些参数也是可以不传的) conn = pymysql.connect(user = &quo ...
- 敌兵布阵(HDU 1166)
Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任 ...
- 解决“cv2.error: OpenCV(3.4.2) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:356:...”
主要是图片路径中“文件夹分隔符”使用的错误 将“\”改成“/”就好了 修改后的测试代码如下:x.py #导入cv模块 import cv2 as cv #读取图像,支持 bmp.jpg.png.tif ...
- 将String类型的字符串拼接成以逗号分隔的字符输出
package test; import java.util.ArrayList; import java.util.List; public class Tesdssss { private sta ...
- JavaScript Call函数原理
call原理分析,一定要看最后的例子. 1.call使用例子 function add(c, d) { return this.a + this.b + c + d; } , b: }; consol ...
- linux 下使用dd制作启动U盘 安装linux
1.找到U盘: sudo fdisk -l 2.卸载U盘:(这个不是必须,如果没有挂载u盘,可以省略) sudo umount /dev/sdb1 3.建立文件系统,格式化U盘: sudo mkfs. ...
- kafka学习汇总系列(一)kafka概述
一.kafka概述 在流式计算中,kafka是用来缓存数据的,storm通过消费kafka的数据进行计算.kafka的初心是,为处理实时数据提供一个统一.高通量.低等待的平台: 1.kafka是一个分 ...
- go语言学习笔记之数组
package main import ( "fmt" ) func main() { // Declare arrays var x[5] int //Assign value ...