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中声明了两 ...
随机推荐
- API 菜单函数
AppendMenu 在指定的菜单里添加一个菜单项 CheckMenuItem 复选或撤消复选指定的菜单条目 CheckMenuRadioItem 指定一个菜单条目被复选成"单选" ...
- 如何在Hadoop的MapReduce程序中处理JSON文件
简介: 最近在写MapReduce程序处理日志时,需要解析JSON配置文件,简化Java程序和处理逻辑.但是Hadoop本身似乎没有内置对JSON文件的解析功能,我们不得不求助于第三方JSON工具包. ...
- 套汇问题 Floyd
问题:套汇. 思路:Floyd 代码: #include <cstdio> #include <cstdlib> #include <ctime> #define ...
- Spring框架及IOC容器
Spring是一个非常活跃的开源框架, 它是一个基于IOC和AOP来构架多层JavaEE系统的框架,它的主要目地是简化企业开发.Spring以一种非侵入式的方式来管理你的代码, Spring提倡”最少 ...
- win10系统的点评
Windows 10 是美国微软公司所研发的新一代跨平台及设备应用的操作系统.在正式版本发布一年内,所有符合条件的Windows7.Windows 8.1的用户都将可以免费升级到Windows 10, ...
- C++全局变量的声明和定义
(1)编译单元(模块) 在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作: 第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件: 第二步,将工程中所有 ...
- 记录一些容易忘记的属性 -- UILabel
一:UILabel lbl.alpha=0.f; lbl 透明,会影响子视图的显示 lbl.backgroundColor=[UIColor clearColor]; lbl 背景色透明,子视图 ...
- 对于C#中的一些点滴你真的理解了吗?
废话不多说看题目,看看我们自己真的理解了吗? 1.如下代码输出的结果是什么? public class A{ public virtual void Func(int number=10) { Co ...
- 【SQL查询日志】查看数据库历史查询记录
--关键字:cross apply & outer apply --最后更新:2011-10-20 作者:Ronli--更新链接:http://www.cnblogs.com/ronli/ar ...
- opencv中的Mat类型
Mat类型主要是跟matlab中的数据类型一样.故用起来很方便. Mat最大的优势跟STL很相似,都是对内存进行动态的管理,不需要之前用户手动的管理内存,对于一些大型的开发,有时候投入的lpImage ...