自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

Qt源码剖析:信息隐藏(3)

前面我们已经看到了怎样使用标准的 C++ 代码以及 Qt 提供的 API 来达到信息隐藏这一目标。下面我们来看一下 Qt 是如何实现的。 还是以 QObject 的源代码作为例子。先打开 qobject.h,找到 QObjectData 这个类的声明。具体代码如下所示:  QObjectData {public: virtual ~QObjectData() = ...

2010-06-19 12:38:56 325

Qt源码剖析:信息隐藏(2)

下面在上一篇的基础上,我们进入Qt的源代码,看看Qt4.x是如何实现 Private Classes 的。正如前面我们说的,或许你会看到很多类似 Q_D 或者 Q_Q 这类的宏。那么,我们来试着看一下这样的代码:void MyClass::setFoo( int i ){ Q_D(MyClass); d->m_foo = i;}int MyClass:...

2010-06-04 13:36:34 286

Qt源码剖析:信息隐藏(1)

如果你阅读了 Qt 的源代码,你会看到一堆奇奇怪怪的宏,例如 Q_D,Q_Q。我们的Qt源码之旅就从理解这些宏说起。 下面先看一个C++的例子。 class Person{public: Person(){} ~Person(){} string name(); void setName(string name); int age(); void s...

2010-06-02 19:08:38 249

Qt源码剖析:从 QObject 开始

本来打算把《Qt学习之路》作为一个类似教程的东西,所以就不打算把一些关系到源代码的内容放在那个系列之中啦。因此今天就先来看一个新的开始吧!这个系列估计不会进展很快,因为最近公司里面要做 flex 的项目演示,所以时间不是很多啦,并且源代码也不是那么容易看的。豆子也不是 C/C++ 出身,因此看起来也会有些麻烦。 《Qt源码剖析》作为一个独立的系列,大致就是对Qt的源代码进行分析。个人以为,...

2010-06-02 13:37:08 253

Qt学习之路(1):前言

 Qt是一个著名的C++库——或许并不能说这只是一个GUI库,因为Qt十分庞大,并不仅仅是GUI。使用Qt,在一定程序上你获得的是一个“一站式”的服务:不再需要研究STL,不再需要C++的<string>,因为Qt有它自己的QString等等。或许这样说很偏激,但Qt确实是一个“伟大的C++库”。我们所使用的Qt,确切地说也就是它的GUI编程部分。C++的GUI编程同Java不...

2009-09-08 14:21:15 245

JavaScript面向对象程序设计(8): 优雅的封装还是执行的效率?

优雅的封装还是执行的效率?这是一个悖论。 优雅封装的程序看起来是那么的美妙:每个属性被隐藏在对象之后,你所能看到的就是这个对象让你看到的,至于它到底是怎么操作的,这个不需要你操心。 执行的效率就是另外一回事。就像是C语言和面向对象的C++之间的差别:C++很优雅,但是执行效率,无论是编译后的二进制代码还是运行期的内存的占用,都要比简单的C语言多出一截来。 这个问题在脚本语言...

2009-06-21 11:04:55 213

JavaScript面向对象程序设计(7): 闭包

闭包这个概念看上去很深奥,这个词在离散数学里面的意思确实比较难于理解。在这里,我们先可以把闭包理解成是一种匿名函数或者匿名类。 1. 什么是闭包? 什么是闭包?一种正式的解释是:所谓闭包,指的是一种拥有很多变量并且绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是这个表达式的一部分。 相信很多人都不会理解这个定义,因为他的学术味道太浓了——或许你喜欢从字面的语...

2009-06-16 21:01:21 182

JavaScript面向对象程序设计(6): 封装

封装是面向对象的重要概念之一。如果一个程序没有封装性,也就谈不上什么面向对象。但是,JavaScript并不像其他的语言,比如Java,有公有变量和私有变量等;在JavaScript中只有一种作用域:公有作用域。在本章中,我们将会见识到JavaScript是如何实现封装的特性的。 1. this和公有变量 首先需要理解this关键字。看下面的一段代码,你应该对此感到熟悉: ...

2009-06-12 19:56:01 166

JavaScript面向对象程序设计(5): 类

类是面向对象程序设计的核心概念之一。一个类代表了具有相似属性的一类事物的抽象。从本篇开始,我们将正式的进入JavaScript的面向对象部分。首先需要注意的是,在JavaScript中并没有“类”这一关键字——在大多数语言中都是使用class作为关键字的。所以,这里的类就成了一个概念,它没有明确的语法标志。 1. 类和构造函数 前面说过,在JavaScript中并没有明确的类的概念...

2009-06-10 21:51:08 178

JavaScript面向对象程序设计(4): 函数

在很多语言中,函数(Java里面成为方法)和对象时截然不同的两种东西。函数被定义为对象的动作,或者是全局的(像在C++中的main函数一样)。但是在JavaScript中,函数和对象的界限却显得不那么明显。 1. 函数的定义 JavaScript中有很多种定义函数的方法: function hello() { alert("Hello!"); }var hello1 =...

2009-06-09 13:48:19 152

JavaScript面向对象程序设计(3): 对象

1. 对象 对象是面向对象程序设计的基础概念之一,只需看看这个名字就已经知道了。在我们熟悉的面向对象语言中,比如Java或者C++,都有着类似的对象定义方法。比如,我们想定义一个类,名字叫Person,有两个属性:name和age,另外有一个方法,将显示出这个Person对象的名字和年龄,那么我们可以用下面的代码实现: public class Person { ...

2009-06-08 14:33:07 173

JavaScript面向对象程序设计(2): 数组

或许你会奇怪,面向对象的程序设计为什么从数组开始讲起?这是因为……其间的种种关系吧……嘿嘿,这里先卖个关子,先来看看我们熟悉的数组在JavaScript里面是什么样子的。 1. 创建数组 在JavaScript中有很多创建数组的方法。比如使用Array函数。不过这不是现在我们要讲述的。现在我们使用简单的方括号“[]”的办法来创建数组。 var objAyyar = [...

2009-06-08 14:28:55 121

JavaScript面向对象程序设计(1): 前言

1. 基于对象还是面向对象?面向对象技术是现代软件开发中的重要技术之一。面向对象变成的好处毋庸置疑,现在的主流语言如Java、C++都是面向对象的。现在的面向对象理论更多的是使用Java或C++进行描述,究其根源,在于这些语言都是传统的面向对象语言,具有面向对象理论所指明的一切特性:类、封装、继承、多态等等。 相比而言,一些动态语言如JavaSript就显得不那么面向对象——至少,在JavaScr...

2009-06-08 14:24:13 116

原创 面向对象的JavaScript(3): 函数也是对象

在很多语言中,函数或者方法和对象是两个截然不同的概念。函数是对象可以进行的动作。在面向对象理论中,函数是由对象发起的消息。对象之间的通讯需要通过消息进行,而这个消息就是我们定义的对象。但是在JavaScript中,函数和对象的概念就没有那么明确了。可以这么理解,函数就是具有与之相关联的可执行的代码的对象。先来看一个普通的例子:function foo(name) { alert(

2009-04-22 21:33:00 476

原创 面向对象的JavaScript(2): 对象就是二元组

什么是对象?这里有很多关于对象的定义:对象(object)是一件事、一个实体、一个名词,是可以获得的东西,是可以想象的能够有自己标识的任何东西。对象是类的实例化。对象是一些相关的变量和方法的软件集合。Java和C++里面的对象似乎都要使用class定义之后,然后在new出来一个。很简单,很明了。但是在JavaScript中,却并没有class这个定义。那么,JavaScri

2009-04-21 20:42:00 1842 1

原创 面向对象的JavaScript(1): 序言

学习JavaScript的时候总会说道,JavaScript是基于对象的语言,而不是面向对象的语言。基于对象和面向对象的区别,或许都可以牵扯到哲学的高度,很多人都在讨论,却一直没有定论。倘或不是为了考试或者其他什么,仅仅就实际应用而言,基于对象或者面向对象并没有什么太大的区别:语言就在那里,不管你把它定义为基于对象还是面向对象,你所要做的并没有什么改变。所以,我们就不提到底是基于对象还是面

2009-04-21 20:39:00 554

原创 使用FEST-Swing测试GUI

 在Java中最常用的单元测试工具要算JUnit了。FEST-Swing是一个能够与JUnit集成的GUI测试框架。使用FEST-Swing可以更方便的对Swing进行一系列的测试。下面就说一下如何使用FEST-Swing进行测试。 首先到http://code.google.com/p/fest/downloads/list上面下载最新的FEST-Swing文件,一般文件名应该是fest

2009-04-16 13:36:00 2390

原创 MDI子窗口间的数据共享

MDI的子窗口间的数据共享是在设计MDI程序是应当注意的问题。作为MDI程序的GPF,在设计时也需要考虑这一点。GPF中,对于一些绘图工具的设置,可以设置成全局性的。也就是说,当窗口1点击“绘制直线”按钮时,窗口2当前的操作同样更改为“绘制直线”。这时,就有两种方法实现,一个是“送出去”,一个是“取过来”。 所谓“送出去”,是指的由主程序将更改的数据送发给各个子窗口。比如如下的代码

2009-04-15 14:00:00 973

原创 使用JInternalFrame实现MDI

 在Java中使用MDI的处理模式,其中的JDesktopPane和JInternalFrame已经为我们实现了这样的功能。但是,在将JInternalFrame最大化的时候,JDesktopPane和我们熟知的其他软件,如Photoshop等,具有不同的处理方式。此时可以通过这里介绍的内容弥补这一缺点,使Swing的程序更类似于本地实现。 首先先看一下怎么使用JDesktopPane和J

2008-08-28 16:36:00 1176

基于MyEclipse6.0的SSH整合 v1.1

这是自己写的《基于MyEclipse的SSH整合》的更新版本。由于上一版本中有一些写的不清楚的地方,所以重新更正了一下。需要的朋友下载吧。

2008-08-28

基于MyEclipse6.0的SSH整合

自己写的基于MyEclipse6.0的SSH整合教程,PDF格式。有问题请与我联系:Finder.Cheng@gmail.com

2008-05-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除