六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 19|回复: 0

ZT Objective C 入门诗,iPhone程序结构

[复制链接]

升级  30%

3

主题

3

主题

3

主题

童生

Rank: 1

积分
15
 楼主| 发表于 2013-2-4 20:01:47 | 显示全部楼层 |阅读模式
C没有类这让人很疲惫对象的说法很时髦不就是继承封装组合人人会右走是C++,这个大众都熟悉它左走就是objective-c,躲在僻静僻静的麦金塔本是同根生的C如何高举面向对象的大旗求同存异标新立异且听一一细分清对象的C是不同的C类的处理与众不同重点要区分不重复是我的口头禅任何时候我只说一次告诉你我的地盘    [@begincommand] | @end就是我的指示        @interface classname  声明类        @implementation classname  实现类        @protocol interfacename  声明接口就是这么简单,你的一定要明白我先声明对成员变量和方法的关系有远近    成员变量大大括在我的怀        关系远近 public / protected / private 来区分        若不声明全默默受着保护        静态成员变量请不要放在此    成员方法我不太爱        前面拴着绳子置于类的变量列表外            减号就是普通函数            加号就是静态函数莫怪        函数的声明有点怪            我要一眼叫出名,包括函数名和参数名            其余的类型括起来,我有空再来慢慢看            函数名和参数名之间用:分隔开        多个参数的函数那就是更怪            逗号其实不是我的爱            后续的每个参数分隔用空白            每个参数形式如 标签:(参数类型)参数名            其实只要把函数名看作是第一个参数标签            你就能领悟其中的奥妙并在调用时喜爱        成员方法太多我才懒得区分亲疏远近            它们一律都是公之于众要好好的干活            谁若不服胆敢出头犯上            就踢出头文件打入冷宫永世不能露面试试看        所有的成员方法都是虚函数            改则重载,不改就继承            不用任何标记请放心大胆随便使用对象的类,在继承层次上考虑才显得重要    所有的类最终都继承于NSObject        因为它给你创建自己生命的方法    不继承于NSObject的只能是接口protocol        它没有成员变量只有方法        它只有声明不用实现        这点和java很相似当然类还有一些绝活可以让你开开眼    可以动态的扩充一个类 而不总是用继承        @interface CClassA(Category)|@end        @implementation CClassA (Category)|@end        源代码外包含该 类的头文件        就可以使用该Category中的方法也可以动态的替换一个类    但是只限于用继承类来替换基类功能        [CInheritClass poseAsClass: [CBaseClass class]];    声明之后用基类创建的对象实际上行为都是继承类所以一个类的完整声明如下:    @interface CClassA(Category): CBaseClass<IA,IB...>    类别,基类,接口一一具全    加上静态 虚函数    所有特性和C++均可对应    再加上所独有的特性    这一特性编译类语言很少有    设计得当完全可以实现动态调用dll切换功能类的定义和使用,也有点怪    想想看一个对象的生命周期,该是如何办        创建很是别扭            这样就定义了一个类对象,            CClassName* pA = [[CClassName alloc] init];            能且只能返回对象指针    释放分为两种        自动释放声明后 [pA autorelease]; 以后可以不管        否则就必须配对 [pA release];    注意类的构造函数init可以捕获    但是析构函数却没有这点很让人意外    使用类也有多种情况        调用成员方法用中括号     int nRtn = [pA method:param1];        而静态成员方法不需要对象 int nRtn = [CClassName method];        调用成员变量还是C格式    pA->m_nCount = 1;    所有的类,都可以对应一个id类型        用来引用一个对象               id     cur = sq;        或者用来引用一个对象指定的接口 id<IA> cur = sq;        然后就可以调用该对象的方法和指定接口方法
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表