这一章节我们来讨论一下参数与共享引用
承接上一章节所说的参数的传递是通过自动将对象赋值给本地变量名来实现的,其本质就是复制引用,传递对象
1.我们下面以传递不可变对象为例子:
>>> b=1
>>> def test(x):
print(x)
print(id(x))
x=2
print(x)
print(id(x))
>>> test(b)
1
497734096
2
...
分类:
编程语言 时间:
2015-09-16 09:47:40
阅读次数:
205
一、前言 简单工厂是一个负责生产对象的中间类,例如有加减乘除四个运算方法,它们继承父类,并重写父类的方法,简单工厂根据不同的运算符创建不同的实例对象赋值给父类,实现了面向对象的另一个原则——降低对象之间的耦合度。简单工厂模式解决了客户端直接依赖于具体对象的问题,客户端可以消除直接创建对象的责任,而仅...
继承,在JS中通过原型链实现。如:function Box(){ this.name="Lee";}function Desk(){ this.age=100;}//通过原型链继承,超类实例化的对象赋值给子类的原型Desk.prototype=new Box();var desk=n...
分类:
编程语言 时间:
2015-09-13 14:32:42
阅读次数:
112
(一)[DLS_DEAD_LOCAL_STORE] 描述: Dead store to 未使用的局部变量 解决方法:局部变量定义后未使用;实例化对象后又重新对该对象赋值 (二) [ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD]? 描述:Write to stat...
分类:
数据库 时间:
2015-09-09 15:00:49
阅读次数:
496
这一章节聊聊使用for和range修改列表,大部分的人在遇到这个场景的时候都会想到以下代码:
>>> a=[1,2,3]
>>> for x in a:
x+=1
>>> a
[1, 2, 3]
>>>
但是为什么结果不对呢?
我们来看看它的运行步骤:
1.在列表a里面取出一个对象
2.把刚刚的对象赋值给x
3.x自加1
大家这里会想到,x引用的对象1,跟列表第一个对象引用...
分类:
编程语言 时间:
2015-09-08 20:16:14
阅读次数:
128
当你访问一个ViewController的view属性时,如果此时view的值是nil,那么,ViewController就会自动调用loadView这个方法。这个方法就会加载或者创建一个view对象,赋值给view属性。loadView默认做的事情是:如果此ViewController存在一个对应...
分类:
其他好文 时间:
2015-09-03 20:24:15
阅读次数:
116
面向对象的三个特征:封装、继承、多态本部分是面向对象的多态性的体现1.对象的向上转型 向上转型----将子类的对象赋值给父类的引用; Student s = new Student(); Person p = s; 或者也可以写成 Person p = new Stud...
分类:
编程语言 时间:
2015-09-02 01:59:31
阅读次数:
127
1.对象作为函数的参数传递过去的时候,是以原对象的引用的方式传递的,更改参数对象的值,会影响原来的对象。 2.对象作为函数的返回值的时候,传递过来的也是一个引用传递,更改传递过来的对象的时候,会影响原来的对象 3.对象A给另一个对象B赋值的时候(无论B是否经过了new 开辟新空间),此时的B是对A对...
分类:
编程语言 时间:
2015-08-30 19:11:57
阅读次数:
173
一、意图保证一个类仅有一个实例,并提供一个访问它的全局访问点。我们怎么样才能保证一个类只有一个实例并且这个实例易于被访问呢?如果将对象赋值给一个java静态变量,那么你必须在程序一开始就创建好对象。万一这个对象非常耗费资源,而程序在这次的执行过程中又一直没有使用到它,不就形成浪费吗?一个更好的办法是...
分类:
其他好文 时间:
2015-08-26 15:32:04
阅读次数:
154
C# byte数组与Image的相互转换功能需求:1、把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库。2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。3、从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上。这里的Image...