黑马程序员——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 :不可变数组 ①创建方法 ...
随机推荐
- Spark实战3:Maven_Java_HelloWorld
Spark独立开发应用( Java语言) 1 创建SimpleApp.java文件: /* SimpleApp.java */ import org.apache.spark.api.java.*; ...
- SendMessage
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- hibernate检索方式(HQL 检索方式,QBC 检索方式,本地 SQL 检索方式)
hibernate有五种检索方式,这儿用 单向的一对多的映射关系 例子,这儿有后三种的方式: 导航对象图检索方式: 根据已经加载的对象导航到其他对象 OID 检索方式: 按照对象的 OID 来检索对象 ...
- Linux命令大全----常用文件操作命令
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka ls 这个命令是经常用到的,用来显示当前目录下有哪些文件 ,ls最常用的参数有三个: -a - ...
- [Machine-Learning] 机器学习中的几个度量指标
Several classification metrics for ML/DM methods. 主要解释下机器学习(或数据挖掘)中的几个度量指标. 1. 关于 "TN/TP/FN/FP&q ...
- Swift基础语法学习总结
Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...
- LTE Module User Documentation(翻译10)——网络连接(Network Attachment)
LTE用户文档 (如有不当的地方,欢迎指正!) 16 Network Attachment(网络连接) 正如前面章节 Basic simulation program 所述,连接用户到基站时通过调 ...
- 学习mongo系列(七)aggregate() ,$group() 管道
aggregate()聚合,主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*) 接上边的数据库: > db.user.aggregate ...
- 程序设计入门—Java语言 第五周编程题 2井字棋(5分)
2 井字棋(5分) 题目内容: 嗯,就是视频里说的那个井字棋.视频里说了它的基本思路,现在,需要你把它全部实现出来啦. 你的程序先要读入一个整数n,范围是[3,100],这表示井字棋棋盘的边长.比如n ...
- java中的标记接口
在java 中,RandomAccess和Cloneable .Serializable一样,都是标志性接口,不需要任何实现,只是又来表明其实现类具体有某种特质的,实现了Cloneable表明可以拷贝 ...