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}; ...
随机推荐
- learning express step(五)
learning express middleware var express = require('express'); var app = express(); var myLogger = ...
- js快速将字符串数组转化为数字数组(互换)
1.数字数组转化为字符串数组 var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(String); //结果: ['1', '2', '3', '4', '5 ...
- Simple Problem with Integers(POJ 3486)
A Simple Problem with Integers Time Li ...
- Centos 查看CPU个数、核心数等信息
总核数 = 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 查看物理CPU个数 cat /proc/cpuinfo| grep & ...
- Python学习日记(七)——装饰器
1.必备知识 #### 一 #### def foo(): print 'foo' foo #表示是函数 foo() #表示执行foo函数 #### 二 #### def foo(): print ' ...
- CF1195B
CF1195B 题意: 有一个盒子,每次可以做两个操作: 1.每次吃掉一块蛋糕 2.每次放入比上一次放入数多1的蛋糕 当盒子为空时,只能执行第 $ 2 $ 个操作.第 $ 1 $ 次操作永远是放入一个 ...
- DML:增、删、改表中数据
1. 添加数据 (1) 常规添加 INSERT INTO 表名(列名,列名,列名) VALUES(值,值,值); (2) 简化添加 INSERT INTO 表名 VALUES(值,值,值); 规则: ...
- ntp时间同步服务器的搭建
CentOS系统一般自带安装有ntp服务,仅需做相关配置即可. 一.配置ntp服务器: 在选定的ntp服务器上vim /etc/ntp.conf 添加一行:restrict default nomod ...
- 重读APUE(10)-中断的系统调用
如果进程在执行一个低速系统调用而阻塞期间捕获到一个信号,则该系统调用就会被中断而不再继续执行:该系统调用返回出错,其errno设置为EINTR: 系统将系统调用分成两类:低速系统调用和其他系统调用:低 ...
- php学习之Model类
<?php $config = include 'config.php'; //引入数据库配置文件 $model = new Model($config); //测试案例 // $saveDat ...