分类 编程 下的文章

分享C# 跟 java的学习教材下载地址

C#学习视频
http://edu.ibeifeng.com/list-index-is_key-is_hot-classify-16.html (北风视频教学)
http://www.xue163.com/exploit/web/aspnet/ (中国学网文章教学)
http://download.csdn.net/tag/c%23 (C#学习视频下载 每套1G左右)java学习视频
http://edu.ibeifeng.com/list-index-is_key-is_hot-classify-15.html (北风视频教学)
http://www.xue163.com/exploit/180/1806479.html(中国学网java视频教学)
http://download.csdn.net/search?q=java (java自学 电子书与实例)

祝大家好好学习... 天天向上...

使用MonoTouch进行iOS开发

开发环境准备

可以参考这篇博文对进行虚拟机环境配置做一下大致的了解。由于 MonoTouch 即将支持 XCode 4, 所以,推荐的开发环境为:

  • 安装 OSX 10.6 ;
  • 安装 XCode 4 到 /Developer 目录, 这样可以使用 XCode 4 提供的编译工具进行编译;
  • 安装 XCode 3 到 /XCode3 目录, 这样可以使用 XCode 3 提供的独立的 Interface Builder;
  • 安装 Mono SDK For Mac OSX 的最新版本;
  • 安装 MonoTouch 的最新试用版;
  • 安装 MonoDevelop for mac osx。

- 阅读剩余部分 -

Chrome 开发者工具使用详解

<p>Chrome Web 开发者工具页面结构与样式</p><div id="post-content"><p>浏 览器开发者工具的使用是Web前端开发工程师必须要掌握技能。本文介绍的是chrome自带的开发者工具,首先从页面的结构和样式来介绍。本文的 目的是介绍chrome开发者工具的基础用法。或许你用别的工具,如firebug或IE的开发者工具,但本文介绍的功能,其他对应工具上应该也有相应的 功能,可以帮助你了解对比。</p><h3>浏览器开发者工具功能:</h3><ul> <li>查看元素的html结构</li> <li>概览页面的css,以及某一元素的样式</li> <li>实时编辑css来调样式</li> <li>查看http请求</li> <li>页面中运行js</li> <li>检测页面性能瓶颈,做性能评估</li> <li>查看页面在本地存储的数据 <div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div> </li></ul><h3>浏览器开发者工具</h3><p>在开始讲解chrome的开发者工具前,先简单列举一下目前主流浏览器提供的开发者工具</p><h4>chrome 浏览器开发者工具</h4><p>Chrome 开发者工个使用入门</p><p>Chromechrome canary和chromium都带有该工具。</p><h4>safari 浏览器开发者工具</h4><p>Chrome 开发者工具使用基础</p><p>safari是采用Web Inspector 它的更新没有chrome频繁。</p><ul> <li>下载地址:apple.com/safari/</li> <li>打开方式,快捷键:ctrl + alt + i,或者选择菜单“工具”->“显示web检查器”</li> <li>参考文档:developer.apple.com/library/safari/documentation</li> <li>注意:也可以在页面想要查看的元素上,右键点击->查看元素 打开</li></ul><h3>firefox 浏览器开发者工具</h3><p>Chrome 开发者工具使用基础</p><p>Chrome 开发者工具入门</p><p>Firefox现在也自带了开发者工具,它的元素定位效果很好firebug,任然可以以插件的形式安装。</p><h3>IE 浏览器开发者工具</h3><p>Chrome 开发者工具基础</p><ul> <li>下载地址:microsoft.com/ie</li> <li>打开快捷键:F12</li> <li>参考文档:msdn.microsoft.com/en-us/library/dd565628</li> <li>注意:安装 chrome frame,chrome的浏览器开发者工具在IE下也可用</li></ul><h3>opera浏览器开发者工具-dragonfly</h3><p>Chrome 开发者工具使用基础</p><ul> <li>下载地址:opera.com/browser/</li> <li>打开快捷键:ctrl + shift + i</li> <li>参考文档:opera.com/dragonfly/documentation/</li> <li>注意:dragonfly是opera浏览器的一部分</li></ul><p>注意,本教程中是以chrome canary,所以介绍的一些特性在beta和稳定版中可能没有</p><p>在开始介绍元素面板前,先介绍一下头部和底部的一些功能。</p><p>Chrome 开发者工具使用基础</p><p>上图标记点介绍:</p><ul> <li>1关闭开发者工具的按钮</li> <li>2、选择面板的标签项</li> <li>3用户自定义的一个第三方扩展应用-PageSpeed</li> <li>4可以调整开发者工具的布局</li> <li>5显示/隐藏控制台</li> <li>6、点击后可在页面中选择元素</li> <li>7页面js报错信息</li> <li>8、打开/关闭设置面板</li></ul><p>可以根据个人习惯来调整开发者工具的位置点击上图标记4的按钮来切换开发者工具的位置,使它可以如下图那样显示:</p><p>Chrome 开发者工具使用基础</p><p>元素面板展现浏览器渲染后的html结构页面js操作dom后的结果也会实时展现如下截图:</p><p>Chrome 开发者工具使用基础</p><ul> <li>1Html结构树</li> <li>2三角型表示该元素有子元素。三角型的不同方向表示展开或折叠</li> <li>3、元素面包屑,从根节点开始,到选中的当前元素。鼠标滑过相应节点,页面中会高亮相应的节点区域</li> <li>4可拖动的分割线,风格html结构树和css样式信息</li> <li>5、可展开折叠的模块,包括css样式信息和其他</li> <li>6计算后的样式板块-展示选中元素的样式信息</li> <li>7、处理是否显示元素从浏览器中继承过来的样式</li> <li>8显示用户的样式,如页面中引用的styles.css文件,或通过js设置的样式,或者通过开发者工具添加的样式</li> <li>9添加新规则–可以给选择的元素添加样式</li> <li>10触发元素状态,可以设置元素的状态,如hover(用户鼠标滑过元素的效果),actice等。截图中对应的按钮icon表示点击触发后,默认状态是关闭的</li> <li>11可以设置颜色显示格式。可以设置为用户自定义的hex、RGB或HSL</li> <li>12、显示元素的和模型</li></ul><p>元素面板可以查看和编辑元素和其样式打开开发者工具,点击第一个标签项,也可以通过在页面元素上右键点击–>查看元素。有很多用途,可以编辑或添加新元素节点;可以查看元素样式信息,并且可以对样式进行添加、删除等操作</p><h3>DOM 编辑</h3><p>在元素面板中编辑dom很简单删除节点只需简单邮件点击节点 选择 “删除节点”删除父节点,子节点也会被删除。小提示:也可以通过键盘的 delete键 删除选择的节点</p><p>双击节点可以修改节点的类型。如下图,修改p节点事实上,修改节点的开始标签类型,其对应的闭合标签类型也会同时改变。</p><p>Chrome 开发者工具使用基础</p><p>添加属性添加属性,右键点击元素选择“添加属性”光标焦点放到你想要添加属性的元素上,然后输入你想要添加的属性。例如,添加class=“title”通过键盘的tab键可以切换到下一个属性进行编辑。</p><p>编辑属性编辑属性和添加属性一样,在想要编辑的属性或属性值上双击即可编辑修改输入框中会高亮你双击的属性或属性值。</p><p>编辑HTML编辑html只需要选择相应节点右键点击 选择“编辑HTML”</p><p>开发者工具提供了很好的页面元素定位功能。在元素面板中鼠标滑过浏览器渲染的html结构树时,页面中对应的的元素区域会高亮显示这非常方便于在html结构树上定位页面元素。</p><p>Chrome 开发者工具使用基础</p><p>当然如果鼠标滑过的节点对应在页面中的区域不在浏览器的可视区域中就看不到高亮了但这中情况下页面会在元素相应的方位上显示一个提示框。也可以右键点击元素,选择“滚动到可视区域”,则对应元素区域会滚动到浏览器的可视区域中</p><p>Chrome 开发者工具使用基础</p><p>开发者工具还有搜索功能当工具面板获得焦点后,快捷键ctrl+f会打开搜索框。如在输入框中输入“body”就会快速找到页面中的第一个body。</p><p>Chrome 开发者工具使用基础</p><h3>查看样式信息</h3><p>在介绍元素面板右侧的样式面板前,先给一个元素同时设置marginpadding和border,在鼠标滑过该元素时你会看到如下的盒模型。</p><p>Chrome 开发者工具使用基础</p><p>Chrome 开发者工具使用基础</p><p>如果发现有浮动元素显示的和模型有问题,可以通过样式面板区域的“盒模型”模块来查看元素的marginpadding、border 。如果没有学习或了解css盒模型,那么它是一个学习盒模型的好帮手</p><p>它告诉你元素是怎么渲染的,找到问题的原因</p><p>该面板可以查看元素尺寸、padding、border和margin的值,单位是px。鼠标滑过各个区域时页面中会高亮显示相应的区域</p><h3>设置样式信息</h3><p>如下图展开样式面板。在空白处点击,光标会自动定位到输入框开始设置样式输入属性名,按tab键就会自动聚焦到属性值的输入框,然后输入想要的值。</p><div><div id="highlighter_636542"><table> <tbody> <tr> <td> <div> <div>border:1pxsolidgreen</div> </div> </td> </tr> </tbody></table><p>Chrome 开发者工具使用基础</p><p> </p><p>在编辑样式属性名或属性值值时,输入有自动完成功能,可以通过tab键或键盘向右箭头来补全你所选择的当输入的属性值单位为px或百分比时,可以通过键盘的向上、向下键来增加和减小数值,还可以通过组合键shift+向上/向下键以10倍的值增加或减小
编辑颜色值时,可以直接输入颜色值,也可以通过点击颜色小方块弹出的取色面板来选择颜色。还可以按shift点击颜色小方块来切换颜色值的模式</p><p>Chrome 开发者工具使用基础</p><p>可以通过点击+号icon来给某个元素添加样式,例如元素如下:</p><div><table id="highlighter_210790"> <tbody> <tr> <td> <div> <div><h1 id="something">Hello</h1></div> </div> </td> </tr> </tbody></table><div style="clear:both;"> </div></div><p>点击+号icon后会自动添加一条规则如下:</p><div><table id="highlighter_641086"> <tbody> <tr> <td> <div> <div>#something { }</div> </div> </td> </tr> </tbody></table><div style="clear:both;"> </div></div><p>如果html如下:</p><div><table id="highlighter_436812"> <tbody> <tr> <td> <div> <div><h1 class="some-class">Hello</h1></div> </div> </td> </tr> </tbody></table><div style="clear:both;"> </div></div><p>那么所对应的规则如下:</p><div><table id="highlighter_634208"> <tbody> <tr> <td> <div> <div>.some-class { }</div> </div> </td> </tr> </tbody></table><div style="clear:both;"> </div></div><p>若html结构如下:</p><div><table id="highlighter_610826"> <tbody> <tr> <td> <div> <div><h1>Hello</h1></div> </div> </td> </tr> </tbody></table><div style="clear:both;"> </div></div><p>则会增加如下一条:</p><div><table id="highlighter_577405"> <tbody> <tr> <td> <div> <div>.h1{ }</div> </div> </td> </tr> </tbody></table><div style="clear:both;"> </div></div><p>那如果元素有多个class如下:</p><div><table id="highlighter_364908"> <tbody> <tr> <td> <div> <div><h1 class="class1 class2 class3">Hi there</h1></div> </div> </td> </tr> </tbody></table><div style="clear:both;"> </div></div><p>会生成一条如下:</p><div><table id="highlighter_286400"> <tbody> <tr> <td> <div> <div>.class1 .class2 .class3{ }</div> </div> </td> </tr> </tbody></table><div style="clear:both;"> </div></div><p>这些生成的规则也可以编辑</p><p>资源面板展示了页面中的所有资源。下图是资源面板截图:</p><p>Chrome 开发者工具使用基础</p><ul> <li>1资源面板tab;</li> <li>2、左侧栏分类列出页面资源如“框架”、“session存储”,如果前面有箭头点击展开还可以看到更多信息。注意左侧栏的大小是可以调整的;</li> <li>3、页面资源包括字体图片、js、css和页面本身。如果页面中有frame或iframe,展开Frames会看到其对应的frame和iframe页面层次结构更清晰</li> <li>4、数据库显示页面相关的SQL数据库数据信息;</li> <li>5相应IndexedDB 也展示页面的IndexedDB 信息;</li> <li>6、以键/值 形式列表展示本地存储的数据;</li> <li>7以键/值列表显示session存储数据;</li> <li>8、根据域名列举cookie;</li> <li>9显示通过manifest缓存的资源。包括很多信息,如js库文件会显示文件地址大小和类型;</li> <li>10、右侧用来显示每个资源对应的详细信息。</li></ul><p>注意,可以修改编辑资源信息,如编辑本地存储的数据,来调试页面资源</p><h3>查看页面中框架中的内容</h3><p>虽然现在由frame组成的页面越来越少见了,但查看框架内容的方法还是有必要了解的下面截图,是一个由frame组成的页面。</p><p>Chrome 开发者工具使用基础</p><p>每个frame都相关的资源都在一个文件夹下,同样点击展开可以了解页面的资源js、css、图片文件和字体情况。点击选中一个框架,页面中其对应的区域会高亮显示</p><p>注意:不会列出系统已有的,如“arial”“Helvetica”等,只会列出浏览器需要下载安装的</p><p>Chrome 开发者工具使用基础</p><p>如上图,对应的字体会显示在右侧,字体大小会根据右侧区域大小来调整大小</p><p>Chrome 开发者工具使用基础</p><p>如上图,对应图片会在右侧显示,图片大小也会根据右侧区域大小来自适应如果图片有透明,透明部分会显示成棋盘格子来表示透明图片信息,如图片大小、文件大小和图片格式会在图片下面显示。</p><p>点击脚本文件,文件内容会如实显示在右侧。</p><p>Chrome 开发者工具使用基础</p><p>如上图,格式难以阅读,后续教程会详细介绍如何查看格式化后的js代码</p><p>可以查看页面加载的所有css文件。同查看js文件方法一样。但通常不会从这里来查看样式。如下图:</p><p>Chrome 开发者工具使用基础</p><h3>加载失败的资源</h3><p>偶尔,浏览器下载资源失败或者代码出错</p><p>Chrome 开发者工具使用基础</p><p>如上图,出错的资源右侧会显示一个红色标记,数字表示出错的个数,点击资源,右侧会显示出错信息</p><h3>保存和查看资源</h3><p>右键点击资源会出现菜单,如下图:</p><p>Chrome 开发者工具使用基础</p><p>可以选择保存该资源,也可以选择在新标签页中查看,当然也还可以做些别的双击资源会在新标签页中打开资源。</p><h3>cookies </h3><p>查看某个网站的cookie信息如图,访问twitter,然后通过资源面板查看cookie信息。</p><p>Chrome 开发者工具使用基础</p><ul> <li>[name]-字段名如字段名为“remember_checked”,其值为1,这可能说明用户在登陆的时候选择了记住我;</li> <li>[value]-字段所对应的值如“_twitter_sess”所对应的值为一串加密了的session ID;</li> <li>[domain]-cookie所在的域上图的“.twitter.com”表明其子域也是可以访问该cookie的;</li> <li>[path]-跟域相同,设置有效的路径设置为“/”表明允许所在路径下都可以访问cookie;</li> <li>[expires]-浏览器可以删除该cookie的日期;</li> <li>[size]-cookie的大小,单位bytes;</li> <li>[HTTP]-cookie的访问允许HTTP协议这可以防止跨站js获取cookie攻击;</li> <li>[secure]]-只允许加密连接访问cookie,如HTTPS;</li></ul><p>可以通过右键菜单,选择“删除”来删除所选cookie。下图是查看本地存储信息的截图:</p><p>Chrome 开发者工具使用基础</p><p>当用户第一次访问该页面时,浏览器会下载css文件再次刷新该页面感觉快了些,因为它将css存在了本地存储中。厨房水槽应用中有了一些字段,如下:</p><div><div id="highlighter_539025"><table> <tbody> <tr> <td>3a867610-670a-11e1-a90e-4318029d18bb-http://dev.sencha.com/deploy/touch/examples/production/kitchensink/resources/css/app.css</td> </tr> </tbody></table><table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td> <div> <div>/45e6f4ffe818855b26f3dcbfc156025eca58e4f5/code,pre,pre*{font-family:Menlo,Monaco,Courier,monospace}</div> </div> </td> </tr> </tbody></table><p>Steve Souders有一篇文章关于静态资源的本地存储 。在移动设备上应用本地存储对提升性能很有效。</p><h3>缓存应用</h3><p>可以查看浏览缓存了哪些资源。如下图:</p><p>Chrome 开发者工具使用基础</p><ul> <li>[resource]-资源的完整路径。典型的资源包括静态资源和html文件,manifest文件也属于其中;</li> <li>[type]-可以改变。Manifest文件的文件类型是Manifest,其他的manifest文件中定义的文件类型为explicit。Fallback类型的文件是那些需要回调资源文件的回调文件;</li> <li>[size]-资源文件的大小,单位bytes;</li></ul></div></div></div></div></div>

- 阅读剩余部分 -

c 语言变量类型注释

<p>1 数据类型关键字

A.基本数据类型(5个)</p><p>

void :声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果


char :字符型类型数据,属于整型数据的一种


int :整型数据,通常为编译器指定的机器字长


float :单精度浮点型数据,属于浮点数据的一种</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>

 

double :双精度浮点型数据,属于浮点数据的一种

 

 

 

B .类型修饰关键字(4个)



short :修饰int,短整型数据,可省略被修饰的int。

long :修饰int,长整形数据,可省略被修饰的int。



signed :修饰整型数据,有符号数据类型

 
unsigned :修饰整型数据,无符号数据类型



C .复杂类型关键字(5个)


struct :结构体声明



union :共用体声明


enum :枚举声明


typedef :声明类型别名


sizeof :得到特定类型或特定类型变量的大小


D .存储级别关键字(6个)



auto :指定为自动变量,由编译器自动分配及释放。通常在栈上分配



static :指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部



register :指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数

 

extern :指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。



const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)

volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值



2 流程控制关键字



A .跳转结构(4个)


return :用在函数体中,返回特定值(或者是void值,即不返回值)

continue :结束当前循环,开始下一轮循环

break :跳出当前循环或switch结构

goto :无条件跳转语句


 

B .分支结构(5个)



if :条件语句,后面不需要放分号



else :条件语句否定分支(与if连用)


switch :开关语句(多重分支语句)


case :开关语句中的分支标记


default :开关语句中的“其他”分支,可选。

 


C .循环结构(3个)


for:for 循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件。在整个for循环过 程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。


do :do循环结构,do 1 while(2); 的执行顺序是1->2->1...循环,2为循环条件

while :while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件</p>

- 阅读剩余部分 -

面向对象的程序设计 (OOP )

<p>面向对象的程序设计</p><p>所谓面向对象的程序设计,就是把面向对象的思想应用到软件工程中,并指导开发维护软件。
对象是由数据和容许的操作组成的封装体,所谓面向对象,就是基于对象的概念,以对象为中心,类和继承为构造机制,认识了解刻画客观世界以及开发出相应的软件系统。
面 向对象的程序设计(OOP)并不是刚刚提出来的,主要是由于C++和Java这类语言的传播,OOP最近才显得越来越重要了。为什么面向对象的设计如此流 行呢?从理论上讲,用面向对象的语言可以处理任何其他计算机语言所能完成的事情。然而当建立基于智能体的模型时,OOP对于开始的程序员和后来的程序读者 都表现出了很大的优势。</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>面向对象的程序设计特点
编程模型</p><p>所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的.
第一种编程方式叫做"面向过程的模型",按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码.如 C 等过程化语言.
第二种编程方式叫做"面向对象的模型",按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象,封装,继承和多态的好处.</p><p>抽象</p><p>面向对象程序设计的基本要素是抽象,程序员通过抽象来管理复杂性.
管 理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统,把它划分成更容易管理的块.例如,一个计算机系统是一个独立 的对象.而在计算机系统内部由几个子系统组成:显示器,键盘,硬盘驱动器,DVD-ROM,软盘,音响等,这些子系统每个又由专门的部件组成.关键是需要 使用层次抽象来管理计算机系统(或其他任何复杂系统)的复杂性.
面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应.
/ (我的理解)
计算机是一个实体,我要输入字符,显示器显示出来,那么
计算机(对象).输入(键盘属性).显示(显示方法)
使用分层来引用,操作.而不用管计算机内部如何处理.
只要有计算机对象,它就能响应我的操作,而我敲键盘,
计算机对象就把这个消息传给屏幕,屏幕显示.
*/
计算机对象包含了它所有的属性,以及操作,这就是面向对象程序设计的三大原则之一:封装.</p><p>封装</p><p>封 装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所 定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节 就能直接使用它,同时不用担心不可预料的副作用.
在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的.所以对象也叫做类的实例.
在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义.
由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JAVA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情.</p><p>继承</p><p>继 承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的 三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明 确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层 次中的每个祖先的所有属性.
继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用.</p><p>多态</p><p>多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用.</p><p>封装,继承,多态的组合使用</p><p>在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车
从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置.
从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能操作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响.
从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁).
这样各个独立的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序</p>

- 阅读剩余部分 -

AS3、Flex循环调用一个对象的属性、方法

<p>当一个类有很多名称相似的属性(如prop1,prop2,prop3……),或是有很多名称相似的方法(如fun1,fun2,func3……),那么如何用一个for()循环循环调用这些属性和方法呢?</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>    可以用如下的方法实现:</p><p>package {
    import flash.display.Sprite;

    public class Test extends Sprite
    {
        private var prop1:String = "foo";
        private var prop2:String = "bar";
        public function Test():void
        {       
            for (var i:int=1; i<3; i++)
            {
                trace(this["prop"+i]);
            }
            for (var j:int=1; j<3; j++)
            {
                this["fun"+j].apply(this, [j,"字串"+j]);
            }
        }
        private function fun1(i:int, str:String):void
        {
            trace("fun1被调用!");
            trace(i);
            trace(str);
        }
        private function fun2(i:int, str:String):void
        {
            trace("fun2被调用!");
            trace(i);
            trace(str);
        }
    }
}</p><p>      </p><p>输出结果:</p><p>foo
bar
fun1被调用!
1
字串1
fun2被调用!
2
字串2</p><p> </p><p>    如果要循环调用其它类对象的属性、方法,比如在类Test中循环调用类Test2实例对象的属性、方法。可以用下面的方法实现:</p><p>Test.as</p><p>package {
    import flash.display.Sprite;

    public class Test extends Sprite
    {
        
        public function Test():void
        {        
            var test2:Test2 = new Test2();
            for (var i:int=1; i<3; i++)
            {
                trace(test2["prop"+i]);
            }
            for (var j:int=1; j<3; j++)
            {
                test2["fun"+j].apply(test2, [j,"字串"+j]);
            }
        }
    }
}</p><p>Test2.as</p><p>package
{
    public class Test2
    {
        public var prop1:String = "test2中的foo";
        public var prop2:String = "test2中的bar";
        public function Test2():void
        {        
        }
        public function fun1(i:int, str:String):void
        {
            trace("test2中的fun1被调用!");
            trace(i);
            trace(str);
        }
        public function fun2(i:int, str:String):void
        {
            trace("test2中的fun2被调用!");
            trace(i);
            trace(str);
        }
    }
}</p><p>输出结果:</p><p>test2中的foo
test2中的bar
test2中的fun1被调用!
1
字串1
test2中的fun2被调用!
2
字串2</p>

- 阅读剩余部分 -

Flash builder 4.6 无需序列号破解方法

<div><p>本方法是针对修改host文件,并且输入的序列号无效的办法... 如果你安装修改了host以及序列号之后没问题 , 那就不建议用这样的办法了 ...</p><p>
具体步骤如下:
1.到Adobe官网下载FlashBuilder 4.6,有简体中文版;</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>

语言:简体中文(Simplified)
http://trials3.adobe.com/AdobeProducts/FLBR/4_6/win32/FlashBuilder_4_6_LS10.exe

2.安装时,不用序列号,直接选择安装试用版;

3.安装完成后在安装目录下依次修改下列3个文件:

(1).eclipsepluginscom.adobe.flexbuilder.project_4.6.0.328916META-INF下面的MANIFEST.MF修改:

Bundle-Version: 0.0.0

(2).eclipsefeaturescom.adobe.flexide.feature_4.6.0.328916下面的feature.xml修改:

<plugin
         id="com.adobe.flexbuilder.project"
         download-size="0"
         install-size="0"
         version="0.0.0"/>

(3).eclipsepluginscom.adobe.flexbuilder.flex_4.6.0.328916下面:

复制config.xml并重命名为config_builder.xml

注:以上紫色文字部分为具体的版本号,请跟据实际版本号进行查找

修改完成之后,再启动Adobe Flash Builder 4.6,恭喜你,你会发现自己彻底拥有了这款RIA工具了。

建议  :序列号不行的情况下用这种办法</p></div>

- 阅读剩余部分 -

Sublime Text 使用介绍

<div><p>如果说Notepad++是一款不错Code神器,那么Sublime Text应当称得上是神器滴哥。Sublime Text最大的优点就是跨平台,Mac和Windows均可完美使用;其次是强大的插件支持,几乎无所不能。</p><p></p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><h2>开始使用Sublime Text:</h2><p>Sublime Text有Dev版本,推荐使用,下载地址,一般推荐下载便携版本(Portable version),这样拿来拿去很方便,也不用安装,而且插件和主体在一个目录下,便携。</p><h2>Sublime Text快捷键:</h2><ul> <li>Ctrl+Shift+P:打开命令面板</li> <li>Ctrl+P:搜索项目中的文件</li> <li>Ctrl+G:跳转到第几行</li> <li>Ctrl+W:关闭当前打开文件</li> <li>Ctrl+Shift+W:关闭所有打开文件</li> <li>Ctrl+Shift+V:粘贴并格式化</li> <li>Ctrl+D:选择单词,重复可增加选择下一个相同的单词</li> <li>Ctrl+L:选择行,重复可依次增加选择下一行</li> <li> <div>Ctrl+Shift+L:选择多行</div> </li> <li>Ctrl+Shift+Enter:在当前行前插入新行</li> <li>Ctrl+X:删除当前行</li> <li>Ctrl+M:跳转到对应括号</li> <li>Ctrl+U:软撤销,撤销光标位置</li> <li>Ctrl+J:选择标签内容</li> <li>Ctrl+F:查找内容</li> <li>Ctrl+Shift+F:查找并替换</li> <li>Ctrl+H:替换</li> <li>Ctrl+R:前往 method</li> <li>Ctrl+N:新建窗口</li> <li>Ctrl+K+B:开关侧栏</li> <li>Ctrl+Shift+M:选中当前括号内容,重复可选着括号本身</li> <li>Ctrl+F2:设置/删除标记</li> <li>Ctrl+/:注释当前行</li> <li>Ctrl+Shift+/:当前位置插入注释</li> <li>Ctrl+Alt+/:块注释,并Focus到首行,写注释说明用的</li> <li>Ctrl+Shift+A:选择当前标签前后,修改标签用的</li> <li>F11:全屏</li> <li>Shift+F11:全屏免打扰模式,只编辑当前文件</li> <li>Alt+F3:选择所有相同的词</li> <li>Alt+.:闭合标签</li> <li>Alt+Shift+数字:分屏显示</li> <li>Alt+数字:切换打开第N个文件</li> <li>Shift+右键拖动:光标多不,用来更改或插入列内容</li> <li>鼠标的前进后退键可切换Tab文件</li> <li>按Ctrl,依次点击或选取,可需要编辑的多个位置</li> <li>按Ctrl+Shift+上下键,可替换行</li></ul><h2>Sublime Text 设置:</h2><ul> <li>Setting User
以下是浩子使用的 <pre>{ "font_face": "courier new", "font_size": 9.0, "highlight_line": true, "scroll_past_end": false, "tab_size": 4, "theme": "Soda Dark.sublime-theme", "word_wrap": true}</pre> </li></ul><h2>Sublime Text插件:</h2><p>建议先启用Package Control,作用是安装插件时很方便,启用方法:菜单栏 – View – Show Console,贴入以下代码并回车,然后重启Sublime。如果你所在的网络无法启用,则无法使用,手动搜索下载去吧(话说你的网也被封了?)。</p><pre>import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/';+pf.replace(' ','%20')).read())</pre><p>开始安装一些非常实用的插件吧,Ctrl+Shift+P(菜单 – Tools – Command Paletter),输入 install 选中Install Package并回车,输入或选择你需要的插件回车就安装了(注意左下角的小文字变化,会提示安装成功),安装其它插件也是这个方法,非常快速。</p><ul> <li>ZenCoding
不得不用的一款前端开发方面的插件,Write less , show more.安装后可直接使用,Tab键触发,Alt+Shift+W是个代码机器。</li> <li>Alignment
代码对齐,如写几个变量,选中这几行,Ctrl+Alt+A,哇,齐了。</li> <li>Prefixr
写 CSS可自动添加 -webkit 等私有词缀,Ctrl+Alt+X触发。</li> <li>Tag
Html格式化,右键Auto-Format Tags on Ducument。</li> <li>Clipboard History
剪贴板历史记录,显示更多历史复制,Ctrl+Shift+V触发。</li> <li>SideBarEnhancements
侧栏右键功能增强,非常实用</li> <li>Theme – Soda
完美的编码主题,用过的都说好,Setting user里面添加”theme”: “Soda Dark.sublime-theme”</li> <li>GBK to UTF8
将文件编码从GBK转黄成UTF8,菜单 – File里面找</li> <li>SFTP
直接编辑 FTP 或 SFTP 服务器上的文件,绝对FTP浮云</li> <li>WordPress
集成一些WordPress的函数,对于像我这种经常要写WP模版和插件的人特别有用</li> <li>PHPTidy
整理排版PHP代码</li> <li>YUI Compressor
压缩JS和CSS文件</li></ul></div>

- 阅读剩余部分 -

随机文章

最近回复

分类

其它

友情连接

推广链接