1.声明式属性
    a.实例变量
    b.声明属性
        自动生成setter/getter方法
        .h ->@property 属性类型 属性名;
        .m ->@synthesize 属性名 = 实例变量名;
    c.点语法
2.IOS5中的属性
    a.实例变量  省
        会自动生成实例变量,实例变量名 等于 _属性名
    b.声明属性
        @property 属性类型 属性名;
        @synthesize 属性名 = 实例变量名;
    c.点语法
3.IOS6中的属性
    a.实例变量 省
    b.声明属性
        @property 属性类型 属性名;
        @synthesize 属性名 = 实例变量名; 省
    c.点语法
总结:
    a.实例变量 省
    b.声明属性
        @property 属性类型 属性名;
        @synthesize 属性名 = 实例变量名; 省
    c.点语法

4.初始化方法
    创建对象的时候,也需要进行初始化操作。
    如果进行默认值的初始化,调用无参的初始化方法。
    如果进行指定值的初始化,调用有参的初始化方法。
    语法规则 :
    无参的初始化方法,与生俱来就拥有,可以不用自定义。
    -(id)init{
        self = [super init];
        if(self){

}
        return self;
    }    
    有参的初始化方法,只能自定义。
    -(id)initWithAge:(int)age andSex:(char)sex{
        self = [super init];
        if(self){
            对属性值的初始化;
        }
        return self;
    }
5.id类型
    任意类型指针,与C语言中的void*使用相似。
    仅仅指向内存中的对象,并不关注内存中数据类型。
    id类型也不能直接使用,如果使用必须做类型转换操作。
        类型转换是有风险的,引用类型必须与空间类型相匹配。
    id类型只能指向(引用)对象所在的内存区域。
6.super关键字
    super关键字代表一个类的父类。
    可以在子类中调用父类中的方法,此时使用super关键字。
    [super init];真正的初始化操作由父类解决。
7.OC中的方法
    方法分为两种:
    a.实例方法
        实例方法只能通过实例(对象)来调用。
        语法规则 :
        -(返回值类型)方法名; -符号 代表实例方法
        实例方法解决与实例有关的相关操作。(数据信息)
        实例方法经常用来处理内存中的数据。
    b.类方法
        类方法只能通过类来调用。
        语法规则 :
        +(返回值类型)方法名; +符号 代表类方法。
        类方法解决与类信息相关的相关操作。(类代码信息)
        类方法经常用来处理与代码相关的操作。(开辟内存空间大小)
        作用:分配内存空间时,经常使用类型方法。
8.self关键字
    self关键字,不但可以在实例方法中使用,也可以在类方法中使用。
    在实例方法中使用self关键字,代表当前实例。
        在当前实例中,如果需要调用其它的实例方法。
        [self otherMethod];
    在类方法中使用self关键字,代表当前类。
        在当前类,如果需要调用其它的类方法。
        [self otherMethod];
        [类 otherMethod];
        在类方法中,是不可以调用实例变量,当然也不可以调用实例方法,当然也不可以调用属性。
        类方法主要用来创建对象。
9.工厂方法
    用来创建对象的。
    创建对象更简单。
    工厂方法分为:
        无参的工厂方法:只会创建一个默认值的对象。
        有参的工厂方法:会创建一个指定值的对象。
    工厂方法命名:
        类方法
        方法名:去掉类的前缀,首字母小写。
        (+)string;
        (+)stringWith… and…;
    工厂方法需要自己写。

NSString -> NS前缀(公司名缩写,二、三个字母组成,并大写) String 类名
    TRString -> TR(tarena) String类名
    HW… -> HW(helloWorld)

OC中属性及方法的更多相关文章

  1. js中属性和方法的类型和区别

    对象的属性:私有属性(var).类属性(静态属性).对象属性(this).原型属性(prototype). 对象的方法: 私有方法(funtion).类方法(静态方法).对象方法(this).原型方法 ...

  2. Java继承中属性、方法和对象的关系

    大家都知道子类继承父类是类型的继承,包括属性和方法!如果子类和父类中的方法签名相同就叫覆盖!如果子类和父类的属性相同,父类就会隐藏自己的属性! 但是如果我用父类和子类所创建的引用指向子类所创建的对象, ...

  3. 为什么Nhibernate中属性和方法必须Virtual的

    如果你曾经用过NHibernate 2.0或者更高的版本,那您一定碰到过下面的错误:NHibernate.InvalidProxyTypeException: The following types ...

  4. python中类中属性和方法的具体定义方法和使用

    1. Python中类中特性分成属性和方法 属性和方法都分为私有和公有的,私有的只可以在本类中使用外部是无法访问的 2. 定义属性(成员变量)的语法格式(公有属性/私有属性) class 类名: de ...

  5. OC中属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?

    此次只做简单说明,不做代码演示! 1> readwrite:同时生成get方法和set方法的声明和实现 2> readonly:只生成get方法的声明和实现 3> assign:se ...

  6. OC中的私有方法

    1.不写在.h文件中 2.不写在.m文件中 一.私有方法: 没有在.h文件当中进行声明的方法在OC中都被称为私有方法 私有方法子类是无法继承到的

  7. OC中自定义init方法

    ---恢复内容开始--- 我们知道,在函数中实例化一个对象,大多数会同时进行初始化,如 Person *p =[ [Person alloc]init]; 此时已经进行了初始化,使用init方法,那么 ...

  8. 网络与多线程---OC中多线程使用方法(一)

    小编在此之前,通过一个小例子,简单的形容了一下进程与线程之间的关系,现在网络编程中的多线程说一下!!! *进程的基本概念 每一个进程都是一个应用程序,都有自己独立的内存空间,一般来说一个应用程序存在一 ...

  9. php中属性和方法的修饰符

    <?php class A{ private function do1(){ echo "do1 called"; } protected function do2(){ e ...

随机推荐

  1. CodeForces - 405A

    Gravity Flip Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit ...

  2. Powershell 批量替换文件

    Powershell 批量替换文件 ##作者:Xiongpq ##时间:2015-06-10 18:50 ##版本:2.0 ##源文件目录 ##源文件目录的所有文件都会覆盖目标目录的同名文件,源文件目 ...

  3. svn update -r m path 代码还原到某个版本(这样之前的log日志也就没了,也就是清空log日志)

    [root@ok 资料库]# svn log 简历 ------------------------------------------------------------------------ r ...

  4. div img居中的方式

    想让div中的img水平和垂直都居中,可以将img放在div中,img的样式:height:100%;width:100%; 外部定义div的宽度和高度,然后定义line-height行高,div外部 ...

  5. [杂]SQL Server 之 Understanding Connection Pooling and Transactions

    A SqlConnection consists of two parts: the public instance that your code interacts with (the outer ...

  6. hdu 3466 排序01背包

    也是好题,带限制的01背包,先排序,再背包 这题因为涉及到q,所以不能直接就01背包了.因为如果一个物品是5 9,一个物品是5 6,对第一个进行背包的时候只有dp[9],dp[10],…,dp[m], ...

  7. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(三)码农网

    12. 安装 Apache Tomcat Tomcat 是由 Apache 设计的用来运行 Java HTTP web 服务器的 servlet 容器.按照下面的方法安装 tomcat,但需要指出的是 ...

  8. JAVA中操作符的优先级

    一元数学比较有逻辑 三元赋值就可以! 一元操作符 数学操作符 比较操作符 逻辑操作符 三元操作符 赋值操作符

  9. transient的理解

    用法解释 1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问. 2)transient关键字只能修饰变量,而不能修饰方法和类.注意,本地变量是不能被 ...

  10. 解决eclipse中git插件中的cannot open git-upload-pack问题

    有时候在eclipse上使用插件egit向github或者osc上同步代码时,有时候会发现出现cannot open git-upload-pack这个问题. 一般引起这个问题的原因有两个:一.网络问 ...