对象间引用赋值及方法时引用传递

考虑下面代码:

    class Program
    {
        static void Main(string[] args)
        {
            C c1 = new C();
            c1.str = "hello";

            C c2 = new C();
            c2 = c1; //对象名即是对象引用,对象间赋值即是引用复制赋值,此时栈区的c2和c1同时指向堆区的同一块内存区域

            Console.WriteLine(c1.str);
            Console.WriteLine(c2.str);

            c2.str = "world";
            Console.WriteLine(c1.str);
            Console.WriteLine(c2.str);

            Set(c1,"test1");
            Console.WriteLine(c1.str);
            Console.WriteLine(c2.str);

            Set(c2, "test2");
            Console.WriteLine(c1.str);
            Console.WriteLine(c2.str);

            Console.ReadKey();
        }

        //对象名作为参数传入时,传入的是对象的引用
        public static void Set(C c,string msg)
        {
            c.str = msg;
        }
    }

    class C
    {
        public string str = string.Empty;
    }

体会输出结果:

时间: 2024-08-04 21:02:52

对象间引用赋值及方法时引用传递的相关文章

html页面触发js里面的方法时,传递的参数写法需要注意的地方。

html页面代码 |<a title="审核" onclick="update_apply({$info['id']},'{$info['action']}')">修改</a> <a title="审核" onclick="show_check({$info['id']},'fd')">审核</a> 入上述代码,中调用update_apply方法时,如果传递的参数是数字型的,就可

基本概念之引用赋值需要注意什么?

分析: 引用就是另外一个对象的别名,给引用赋值,就是将引用指向这个对象.此后对引用的任何操作,实际上就是对这个对象的操作. 记住:引用就是目标对象的指示物.所以当定义一个引用时,必须给引用赋值,将它指向某个对象.并且引用和它所指的对象之间的这种指向关系一旦确定就不能更改,也就是说,不能修改引用的初始指向,将其指向另外一个对象,引用和它所指向的对象之间的关系是从一而终的.

总结:子类父类拥有同名的方法时……

示例: public class ParentChildTest { public static void main(String[] args) { Parent parent=new Parent(); parent.printValue(); Child child=new Child(); child.printValue(); parent=child; parent.printValue(); parent.myValue++; parent.printValue(); ((Chil

java中使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

是引用对象的地址值不能变,引用变量所指向的对象的内容是可以改变. final变量永远指向这个对象,是一个常量指针,而不是指向常量的指针. 例如:final StringBuffer sbu = new StringBuffer(“abc”); 在对其进行重新赋值 sbu = new StringBuffer(“”); 会出现编译错误,被final修饰的变量是不能被重新赋值的. sbu.append(“d”); 是可以编译通过的; final:最终.作为一个修饰符 1.可以修饰类.变量.函数. 2

《Java开发手册》学习进程之对象引用与接口引用间的赋值和强制类型转换问题

对象引用之间: 子类引用可以赋值给父类引用. 父类引用需要在强制转换之后才能赋值给子类引用. 对于对象引用的强制转换,只要被转换的引用类型与转换后的目标类型之间是派生或被派生的关系,就可以通过编译.如果没有这些关系而去强制转换,则编译报错. 即使编译通过,如果被转换的引用指向的对象类型与转换后的目标类型之间不相符或不兼容(即被转换的引用指向的对象类型不能转换为除自身或者自身父类的其他类型,同下),则运行出错. 接口引用之间: 子接口引用可以赋值给父接口引用. 父接口引用需要在强制类型转换之后才能

jquery引用方法时传递参数

经常到网上去下载大牛们写的js插件.每次只需将js引用并设置下变量就行了,但一直没搞明白原理(主要是大牛们的代码太简练了-,-). 这次弄清了如何传递.设置多个(很多个)参数. 如 方法为function lunbo(){}; 在调用.设置的时候写: lunbo({ speed:200, wrapper:'#id', ease:'easing' }) 则,在方法内获取的时候: function lunbo(options){ var set=$.extend({},options); var _

使用dubbo引用和发布服务时出现的异常:HTTP状态500 - 请求处理失败; 嵌套异常是com.alibaba.dubbo.rpc.RpcException:无法在服务cn.e3mall.service.ItemService中调用方法getTbItemById。使用dubbo版本2.5.3在消费者...

异常情况如下: 从异常看,主要是因为TbItem没有序列化: 分析问题: 表现层调用服务端时返回了一个TbItem对象即Java对象,此时这个对象远程调用拿过来必须进行序列化,要进行网络传输必须先要把对象序列化,再通过流传到引用端(表现层),传到表现层后再进行反序列化,再变成Java对象,所以TbItem对象必须实现序列化接口 原文地址:https://www.cnblogs.com/rgever/p/10279940.html

关于jsp中引用css外部样式无效时的处理方法

今天做项目遇到的一个小问题,如下所示: <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet"> 引用外部css样式时,无效.然而在相同目录下的其他jsp文件也用了相同的路径引入该css样式,发现没有啥问题.这就很奇怪了,检查代码后发现没有问题.那问题只可能出在路径上. 将相对路径改为绝对路径后,发现就没问题了. <link href="${pageContext.r

文件载入流程,函数的使用【函数名,参数【按引用赋值的问题】,函数体,【变量作用域和生命周期】】

1.求最大公约数辗转相除求值例如:12,8求最大公约数12%8=4[不为零]8%4=0[为零,则4为最大公约数][原理就是12,8的最大公约数和8,4的最大公约数一致][这个问题已经可被证明]计算机中最早的算法 2.文件载入---流程[php执行的先后顺序][php对代码的编译以文件为单位]先检查一个文件中的语法再进行编译然后才会一行行解释执行 [这一点需要注意]这里进行文件载入的流程讲解:php文件载入时,被引入的文件中的语法并不会解析,只有当该文件被执行[也就是被引入语句之后的部分才会报错]