Java培训、Android培训、iOS培训、.Net培训、期待与您交流!

(以下内容是对黑马苹果入学视频的个人知识点总结)

(一)点语法

点语法其实本质上还是方法调用

当使用点语法时,编译器会自动展开成相应的方法

1)利用点语法代替set方法和get方法

①方法调用

 Student *stu = [Student new];
[stu setAge:];
int age = [stu age];

②点语法

 stu.age = ;
int age = stu.age;

注意点:  死循环

- (void) setAge:(int)age {

// 下面的代码会引发死循环

self.age = age;

}

- (int) age {

// 下面的代码会引发死循环

return self.age;

}

(二)成员变量

1)基本概念

局部变量、全局变量都有自己的作用域,成员变量也不例外

2)类型

①@private:只能在当前类的对象方法中直接访问

②@protected:可以在当前类以及子类的对象方法中直接访问

③@public:任何地方都可以直接访问

④@package:同一个“体系内”(框架)可以访问,介于@private和@public之间

(三)@property和@synthesize

1) @property

1>用在@inteface中

2>用来自动生成setter和getter的声明

3>用@property int age;就可以代替下面的两行

 - (int)age;   // getter

 - (void)setAge:(int)age;  // setter

①自从Xcode 4.x后,@property就独揽了@synthesize的功能。也就是说,@property可以同时生成setter和getter的声明和实现

②默认情况下,setter和getter方法中的实现,会去访问下划线 _ 开头的成员变量

2) @synthesize

1>用在@implementation中

2>用来自动生成setter和getter的实现

3>用@synthesize age = _age;就可以代替

 - (int)age{

        return _age;
} - (void)setAge:(int)age{
_age = age;
}

① setter和getter实现中会访问成员变量_age

② 如果成员变量_age不存在,就会自动生成一个@private的成员变量_age

@synthesize age;

③ setter和getter实现中会访问成员变量age

④ 如果成员变量age不存在,就会自动生成一个@private的成员变量age

手动实现

①若手动实现了setter方法,编译器就只会自动生成getter方法

②若手动实现了getter方法,编译器就只会自动生成setter方法

③ 若同时手动实现了setter和getter方法,编译器就不会自动生成不存在的成员变量

黑马程序员——OC语言 核心语法(1)的更多相关文章

  1. 黑马程序员——OC语言 核心语法(2)

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)id 1)简介:万能指针,能指向任何OC对象,相当于NSObject ...

  2. 黑马程序员——OC语言 核心语法 (3)

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)分类Category 1) 基本用途 如何在不改变原来类模型的前提下 ...

  3. 黑马程序员——OC语言基础语法 面向对象的思想

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...

  4. 黑马程序员——OC语言 其他语法

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特 ...

  5. 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...

  6. 黑马程序员——OC语言 类和对象

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)类 1)类的声明 代码编写 ①定义一个Car类,拥有2个属性:轮子数 ...

  7. 黑马程序员——OC语言 三大特性之多态

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之一的多态 (一)多态的基本概念 OC对象具有多态性体现在 Per ...

  8. 黑马程序员——OC语言 三大特性之继承

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之继承 (一)继承的基本用法 先建立个Animal再用Dog继承前 ...

  9. 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...

随机推荐

  1. oracle触发器及异常处理 简单例子

    create sequence person_seq start with 1 increment by 1 order                     --按顺序 nocycle       ...

  2. c3p0数据库连接池使用

  3. (顺序表的应用5.4.3)POJ 1012(约瑟夫环问题——保证前k个出队元素为后k个元素)

    /* * POJ-1012.cpp * * Created on: 2013年10月31日 * Author: Administrator */ #include <iostream> # ...

  4. [课程设计]Scrum 2.1 多鱼点餐系统开发进度(下单列表布局)

    [课程设计]Scrum 2.1 多鱼点餐系统开发进度(下单列表布局) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店 ...

  5. KTV项目总结

    KTV项目总结 大约一个星期前吧,老湿说我们要开始做KTV项目了,说是KTV项目是贯穿整个学的内容的,会所的,要我们认真去对待,一开始,第一天搭前台界面,总是有不会的,要去问问,这个要用什么控件啊,用 ...

  6. Wow! Such Sequence!(线段树4893)

    Wow! Such Sequence! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...

  7. Uva 11542 乘积是平方数

    题目链接:http://vjudge.net/contest/142484#problem/A 这个题目也是2016年CCPC网赛上面的题目,当时我是不会做的,但是大牛们都知道这是一个原题,最后给一队 ...

  8. easyui datagrid 行右键生成 动态获取(toolbar) 按钮

    var createGridRowContextMenu = function(e, rowIndex, rowData) { e.preventDefault(); var grid = $(thi ...

  9. Fiddler—PC上实现手机的抓包

    PC上安装Fiddler之后,可以抓取各种浏览器的请求,通过一些设置可以获取iPhone.安卓手机.windows phone的请求.具体的工作原理我也不多说(哼,绝对不是因为我不懂XD),主要说下如 ...

  10. 断言(ASSERT)的用法

    我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”. 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解 ...