黑马程序员——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 :不可变数组 ①创建方法 ...
随机推荐
- Eclipse下Tomcat插件的安装
在Eclipse下安装Tomcat插件使开发,编译,发布变的相当的简单,下面就说一下安装的过程,很简单的: 1.先下载一个tomcat插件 地址:http://www.eclipsetotale.co ...
- Jquery 处理字符串
1.去掉空格var txt=$.trim($("txt1").val()); 2.转为数字 txtNum=Number($.trim(txt)) + 1; var thisEle ...
- Android 网络请求库volley的封装,让请求更方便
首先封装一下volley 请求 public class CustomRequest extends StringRequest { private static final String TAG = ...
- ipcs命令
unix/linux下的共享内存.信号量.队列信息管理 在unix/linux下,经常有因为共享内存.信号量,队列等共享信息没有干净地清楚而引起一些问题. 查看共享信息的内存的命令是ipcs [-m| ...
- CentOS7安装Apache2.4+PHP5.6
linux系统CentOS7 先下载Apache需要依赖的软件 1.APR 下载地址http://apr.apache.org/download.cgi wget下载路径http://mirror.b ...
- POJ 1113:Wall
原文链接:https://www.dreamwings.cn/poj1113/2832.html Wall Time Limit: 1000MS Memory Limit: 10000K Tota ...
- C++ Programming language读书笔记
C语言,结构化程序设计.自顶向下.逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序.选择.循环三种基本控制结构构造. 模块结构:"独立功能,单出.入口&quo ...
- CentOS7 基础配置
Centos 7 部分>>>>>>>>>>>>>>>>>>>>>>& ...
- wifipineapple使用教程
1.把开关拨到右边 如果有灯亮说明有电 4个灯全亮说明电量是满的 以此类推 如果一个也不亮说明没电了需要用充电器充电 2.把开关拨到左边打开wifi的开关 会开启一个wifi大概一分钟左右会有wif ...
- QT mainwindow四件套
最近在学习QT.下面总结一下mainwindow的设置步骤. 使用的平台为vs2013+qt5.3.2+qt-vs-addin1.2.3 1)安装软件 首先安装vs2013,这个不多介绍. 然后安装q ...