黑马程序员——OC语言 核心语法(1)
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)的更多相关文章
- 黑马程序员——OC语言 核心语法(2)
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)id 1)简介:万能指针,能指向任何OC对象,相当于NSObject ...
- 黑马程序员——OC语言 核心语法 (3)
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)分类Category 1) 基本用途 如何在不改变原来类模型的前提下 ...
- 黑马程序员——OC语言基础语法 面向对象的思想
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...
- 黑马程序员——OC语言 其他语法
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特 ...
- 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...
- 黑马程序员——OC语言 类和对象
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)类 1)类的声明 代码编写 ①定义一个Car类,拥有2个属性:轮子数 ...
- 黑马程序员——OC语言 三大特性之多态
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之一的多态 (一)多态的基本概念 OC对象具有多态性体现在 Per ...
- 黑马程序员——OC语言 三大特性之继承
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之继承 (一)继承的基本用法 先建立个Animal再用Dog继承前 ...
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
随机推荐
- Shadow Zhang PGPool 配置错误定位 s_do_auth: expecting R got E
自从按照教程 http://www.pgpool.net/docs/latest/pgpool-zh_cn.html#hba配置好PGPool以后,每次启动 pgpool -c -n -D 都报 s_ ...
- vlc播放yuv文件
vlc.exe --demux rawvideo --rawvid-fps 25 --rawvid-width 480 --rawvid-height 272 --rawvid-chroma I420 ...
- 【转】eclipse安装SVN插件的两种方法
转载地址:http://welcome66.iteye.com/blog/1845176 eclipse里安装SVN插件,一般来说,有两种方式: 直接下载SVN插件,将其解压到eclipse的对应目录 ...
- [CCF] ISBN号码检测
CCF ISBN号码检测 题目概述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如"x-xxx-xxxxx-x",其 ...
- 如何使用Python调用AutoIt来实现Flash控件的上传功能
先看一段代码 upload.au3(这个后缀autoit3的格式): ;等待出现title为数据采集-军课网-MozillaFirefox的浏览器窗口 WinWait("数据采集 - XX网 ...
- Android开发之MediaRecorder类详解
MediaRecorder类介绍: MediaRecorder类是Android sdk提供的一个专门用于音视频录制,一般利用手机麦克风采集音频,摄像头采集图片信息. MediaRecorder主要函 ...
- [问题2014A04] 复旦高等代数 I(14级)每周一题(第六教学周)
[问题2014A04] 设 \(A,B,C,D\) 均为 \(n\) 阶方阵. (1) 若 \(A^2=A\), \(B^2=B\), \((A+B)^2=A+B\), 证明: \(AB=BA=0\ ...
- ubuntu 到底是选择32位还是64位?
ubuntu 到底是选择32位还是64位? 2011-06-03 15:16:31 标签:ubuntu linux 休闲 cpu 职场 原文出处:官方wiki原文作者:授权许可: 创作共用协议Att ...
- How To Use FETCH_RECORDS In Oracle Forms
When called from an On-Fetch trigger, initiates the default Form Builder processing for fetching rec ...
- mysql命令导出导入数据和结构
在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看: mysqldump 最常用的: mysqldump -uroot -pmysql databasefo ...