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中声明了两 ...
随机推荐
- Android调用远程Service的参数和返回值都需要实现Parcelable接口
import android.os.Parcel;import android.os.Parcelable; public class Person implements Parcelable{ pr ...
- ASP.NET MVC 输出字符串
@{Output.Write("<h1>输出字符串</h1>");}
- 二模 (10) day2
第一题: 题目大意:求出区间 [L,R]里约数最多的数. L,R<=10^9 解题过程: 1.一开始我就往恶心的数据去想了,比如 L=R=一个超级大的质数.. 那么 用搜索质因子的方法 是 ...
- Fragment在xml中但作用不是显示view
2013-12-17 有时候会发现在xml文件中有使用fragment,但是却不是为了显示View,代码如下: <FrameLayout xmlns:android="http://s ...
- C++-new操作符
1,new操作符实际上包含三部分:operator new分配内存和调用构造函数初始化刚刚分配的内存,类型转换刚刚的指针. string* ps = new string("lalalala ...
- 响应式架构:消息模式Actor实现与Scala、Akka应用集成
这是一本最近很流行的书. 有时间就去看看
- [windows驱动]windows8.1驱动调试前戏
人们都说在干正事之前,得先做足前戏才会爽,我一直很认同这个观点,下面我来总结下进行windows8.1的WDK调试所要做的准备工作. 软件安装: 1.VS2013. 2.WDK8.1 3.Window ...
- android中正确导入第三方jar包
android中正确导入第三方jar包 andriod中如果引入jar包的方式不对就会出现一些奇怪的错误. 工作的时候恰好有一个jar包需要调用,结果用了很长时间才解决出现的bug. 刚开始是这样引用 ...
- XCode 自动化打包总结
最近一个礼拜折腾xcode 中ipa 自动化打包,对我来说也说是磕磕碰碰.毕竟对mac下的命令行模式完全不熟悉.而且我们的项目是基于cordova的一个项目. 之前我自己对cordova 项目的命令行 ...
- CSS Overflow:hidden
终于知道为什么要设置OverFlow:Hidden了, 看代码: <div id="wrapper"> <figure class="img-wrapp ...