因为用到PHP新版本,一些新特性必须要了解,且有些可以在开发时就使用,如果不使用,那么何必升级PHP版本呢,显得有些得不偿失了!所以整理了一下 一些特性,有可能不全,待添加PHP 5.3中的新特性一.PHP 5.3中的新特性1. 支持命名空间 (Namespace)2. 支持延迟静态绑定(Late ...
分类:
Web程序 时间:
2015-06-12 11:27:55
阅读次数:
150
在Java方法调用的过程中,JVM是如何知道调用的是哪个类的方法源代码? 这里面到底有什么内幕呢? 这篇文章我们就将揭露JVM方法调用的静态(static binding)和动态绑定机制(auto binding)。
★ 静态绑定机制
Java代码
//被调用的类 package hr.test; class Father{ public s...
分类:
编程语言 时间:
2015-06-01 22:40:47
阅读次数:
165
关联对象,其实就是给某个对象关联其他一些对象,这些对象通过键来设置和存储,并且存储对象值得时候可以设置存储策略,常用在类别中比如我们给UIButton创建一个类别,不用将button处理的事件分开写了2.消息传递OC是C的超集,C语言使用的是静态绑定,在编译期就能决定运行时候调用的函数,而OC在给对...
分类:
其他好文 时间:
2015-05-31 21:29:34
阅读次数:
213
在继承中,分为两类函数:virtual和non-virtual。而重新定义一个非虚函数是不好的(条款36),那么以下的讨论就是如何定义继承而来的虚函数。强调:虚函数是动态绑定的,而缺省参数值是静态绑定的。 1 #include 2 3 class Shape 4 { 5 public: 6 ...
分类:
其他好文 时间:
2015-05-24 12:54:55
阅读次数:
195
如果类继承中重新定义了虚函数,那么虚函数中的缺省参数不要重新定义。
用一句话来解释原因就是:虚函数是动态绑定的(dynamically bound),但是缺省参数却是静态绑定的(statically bound)。
静态类型和动态类型
首先需要了解什么是对象的静态类型和动态类型,对象的所谓静态类型(static type),就是它在程序中被声明时所采用的类型。
以下面的类为例:
clas...
分类:
其他好文 时间:
2015-05-20 18:36:00
阅读次数:
210
由Logger的名称可以知道这句的意思是用Logger工厂获取Logger实例,但是不明白其中的原理,看了看源码:
LoggerFactory中的getLogger方法,返回一个以name命名的静态绑定的实例,而这个name一般以Logger实例所在的类命名,如通过类名.Class.getName()获取。
public static Logger getLogger(String nam...
分类:
其他好文 时间:
2015-05-12 11:39:24
阅读次数:
172
1、为什么了解决什么
多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。C++中的多态性具体体现在运行和编译两个方面。运行时多态是动态多态,其具体引用的对象在运行时才能确定。编译时多态是静态多态,在编译时就可以确定对象使用的形式。(静态绑定和动态绑定)
多态:同一操作作用于...
分类:
编程语言 时间:
2015-04-07 23:30:32
阅读次数:
319
1、关于面向对象的三个重要属性Encapsulation(封装):无法直接访问类的成员变量,而是通过一些getset方法,间接访问数据域;Polymorphism(多态):静态绑定,动态绑定,通常通过继承来实现多态,通常通过重定义(override)父类的方法来实现,在c#中,与c++类似(java...
分类:
其他好文 时间:
2015-03-31 06:19:20
阅读次数:
175
1 C++中,通过基类的引用(或指针)调用虚函数时,发生动态绑定,两个条件(基类引用或指针、虚函数)缺一不可 虚函数的默认实参将发生静态绑定2 继承层次的根类一般都需要定义虚析构函数3 任意非static成员都可以是虚析构函数,static成员函数不能是虚析构函数(应为static成员不是属于某个对...
分类:
编程语言 时间:
2015-03-30 22:33:06
阅读次数:
172
条款36绝不重新定义继承而来的non-virtual函数
条款37绝不要重新定义继承而来的缺省参数值条款...
分类:
编程语言 时间:
2015-03-05 23:48:50
阅读次数:
329