iOS学习笔记---oc语言第二天
实例变量与方法
一、实例变量的可见度

二、方法
oc中的方法分两种:类方法和实例方法
类方法:只能类使用 eg:+ (id)alloc 注:类方法中不能使用实例变量
实例方法:只能对象使用,eg:- (void)sayHi

全局变量通常定义在.m文件里
引入头文件 “” he <>的区别
""一般引入自己创建的头文件,<>一般引入系统头文件
""系统会优先找工程中自检创建的文件中有没有,如果没有才会查系统类库
如果是尖括号,就会知道是系统的东西,不会找自己的类库,如果在系统中找不到那么会认为不存在这个头文件
//类方法的优势:不需要创建对象就可以调用的方法
//使用场景:某个功能跟对象没有联系,如果把方法写成实例对象,我们想要使用方法,还需要先创建一个对象,然后才能通过对象调用实例的方法,
这样做比较麻烦,因此可以使用类方法,直接用类名调用类方法即可

多参与单参赋值并存可以更方便。
OC里面不叫调用,叫发送消息[receiver message]OC中使用消息发送机制
1,类接收到消息,即方法
2,类找到方法并执行
(设置器)setter 和 (访问器)getter
我们之前写的那些赋值取值都可以称作setter和getter

苹果命名规范:
setter和getter命名用驼峰式命名
无论是setter还是getter内部操作的都是实例变量
每一个实例变量都需要一对setter和getter
- (id)init 这个初始化方法只能给实例变量设置默认值,不灵活
-(id)initWithName()name 自定义初始化方法,根据需求定义初始化方法。
初始化方法永远只调一次,只是初始创建对象的时候调用,以后再也调用
- (id)initWithName:(NSString *)name sex:(NSString *)sex hobby:(NSString *)hobby age:(NSInteger)age
{
_name = name;
_sex = sex;
_hobby = hobby;
_age = age;
count++;
return self;
}
initWith永远都要跟着alloc使用,不能单独调用
类的组合使用
在定义类的过程中,组合使用其他类型的对象
import 当a引入b文件,b又引入了a文件,这是会报错。
这样会导致循环引入头文件
需要使用对方的时候,有一个文件或者两个都改成@class b;在他们的.M文件引入头文件
iOS学习笔记---oc语言第二天的更多相关文章
- iOS学习笔记---oc语言第一天
第一讲 初始类和对象 c语言的超集,允许在oc中使用c语言源代码.编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富 面向对象编程 oop 面向对象语言:c++ java ...
- iOS学习笔记---oc语言第五天
字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key- ...
- iOS学习笔记---oc语言第四天
字符串 数组 一.使用苹果帮助文档 学会使⽤用苹果帮助⽂文档是开发者的⼀一项技能 Inherits from 继承⾃自 Conforms to 遵循什么协议 Framework 属于哪个框架 Avai ...
- iOS学习笔记---oc语言第三天
继承.初始化方法 一.继承 继承的上层:父类 继承的下层:子类 继承是单向的,不能相互继承 继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为 子类能继承父类全部的特征和行为(私有变量 ...
- iOS学习笔记---c语言第二天
一.bool布尔类型 c语言没有bool类型,oc里有bool类型 是一种非真即假的数据类型,布尔类型的变量只有yes和no两个值.yes表示表达式是真,no表示表达式是假. 在c语言中认为非0 ...
- iOS学习笔记---oc语言第九天
初级内存管理 iOS应用程序出现crash(闪退),90%以上是内存问题////其他:数组越界,方法只声明没实现 内存问题体现在两个方面:内存溢出\野指针异常 内存溢出:程序运行超出内存上限 野指针异 ...
- iOS学习笔记---oc语言第六天
Block .数组高级 block本质上就是匿名函数(没有名称的函数) block语法和函数指针很相似 回顾函数 函数:C语⾔中,实现某一类功能的代码段. 完整的函数包含两部分:函数声明.函数定义 函 ...
- iOS学习笔记---oc语言第十天
内存管理高级 一 属性的内部实现原理 assign retain copy assign 下的属性内部实现 setter方法 @property(nonatomic,assign)NSS ...
- iOS学习笔记---oc语言第八天
属性 能在一定程度上简化代码,并且增强实例变量的访问安全性 属性的声明:使用@property声明属性 eg:@property NSSstring *name;相当于@interface中声明了两 ...
随机推荐
- laypage分页功能demo
demo代码如下: <div id="view1"></div> <div id="page1"></div> ...
- Ubuntu用户相关基本命令
Linux是一个用户权限管理得很严格的系统,Ubuntu作为最受欢迎的桌面发行版,提供了简单易用的图形界面工具来管理用户,但是命令行工具往往更强大,用得熟练的话效率会更高.用户管理命令常用的有如下几个 ...
- mongoose深层修改问题
https://cnodejs.org/topic/50dde64ea7e6c6171a80a678 各位大神好,好久没写点什么东西了,最近也是cnode社区不知道咋的了都登录不进去,今天总算能回到这 ...
- 戴文的Linux内核专题:10配置内核(6)
转自Linux中国 欢迎来到下一篇关于内核配置文章!还有大量的选项需要配置.这篇文章将主要讨论PCI和ACPI. 这里我们可以启用由ACPI控制的扩展坞和可移动驱动器槽的支持(Dock).记住,ACP ...
- C语言基础--while循环
while循环格式: while (条件表达式) { 语句; ... } 执行说明: while是对给定的条件进行判断, 如果条件满足, 就执行while后面大括号中的内容, 执行完毕之后会再次判 ...
- 黑马程序员——OC语言Foundation框架 结构体
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)结构体 NSRange(location length) NSPoi ...
- maven的入门hello world
编写pom pom.xml是maven的核心.Project Object Model,定义了项目的基本信息,用于描述项目如何构建,项目依赖等. 首先,新建hello-world文件夹,新建pom.x ...
- 北大ACM题库习题分类与简介(转载)
在百度文库上找到的,不知是哪位大牛整理的,真的很不错! zz题 目分类 Posted by fishhead at 2007-01-13 12:44:58.0 -------------------- ...
- poj2891 拓展欧几里得
//Accepted 164 KB 16 ms //拓展欧几里得 //m=a1*x+b1 --(1) //m=a2*(-y)+b2 --(2) //->a1*x+a2*y=b2-b1 //由欧几 ...
- How to Write Doc Comments for the Javadoc Tool
http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html This document describe ...