实例变量与方法

一、实例变量的可见度

二、方法

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语言第二天的更多相关文章

  1. iOS学习笔记---oc语言第一天

    第一讲 初始类和对象 c语言的超集,允许在oc中使用c语言源代码.编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富 面向对象编程 oop 面向对象语言:c++  java   ...

  2. iOS学习笔记---oc语言第五天

    字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key- ...

  3. iOS学习笔记---oc语言第四天

    字符串 数组 一.使用苹果帮助文档 学会使⽤用苹果帮助⽂文档是开发者的⼀一项技能 Inherits from 继承⾃自 Conforms to 遵循什么协议 Framework 属于哪个框架 Avai ...

  4. iOS学习笔记---oc语言第三天

    继承.初始化方法 一.继承 继承的上层:父类  继承的下层:子类 继承是单向的,不能相互继承 继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为 子类能继承父类全部的特征和行为(私有变量 ...

  5. iOS学习笔记---c语言第二天

    一.bool布尔类型    c语言没有bool类型,oc里有bool类型 是一种非真即假的数据类型,布尔类型的变量只有yes和no两个值.yes表示表达式是真,no表示表达式是假. 在c语言中认为非0 ...

  6. iOS学习笔记---oc语言第九天

    初级内存管理 iOS应用程序出现crash(闪退),90%以上是内存问题////其他:数组越界,方法只声明没实现 内存问题体现在两个方面:内存溢出\野指针异常 内存溢出:程序运行超出内存上限 野指针异 ...

  7. iOS学习笔记---oc语言第六天

    Block .数组高级 block本质上就是匿名函数(没有名称的函数) block语法和函数指针很相似 回顾函数 函数:C语⾔中,实现某一类功能的代码段. 完整的函数包含两部分:函数声明.函数定义 函 ...

  8. iOS学习笔记---oc语言第十天

    内存管理高级 一 属性的内部实现原理   assign   retain    copy assign 下的属性内部实现 setter方法 @property(nonatomic,assign)NSS ...

  9. iOS学习笔记---oc语言第八天

    属性 能在一定程度上简化代码,并且增强实例变量的访问安全性 属性的声明:使用@property声明属性  eg:@property NSSstring *name;相当于@interface中声明了两 ...

随机推荐

  1. SharePoint加K2,将Portal系统与BPM系统完美整合!

    K2 blackPearl与Microsoft Office SharePoint 一起为解决人员和流程相互合作的解决方案而提供一个强大的平台. K2“blackpearl”根据企业的需求提供了设计, ...

  2. VC单文档对话框添加托盘图标

    一 单文档添加托盘 1. 在CMainFrame中定义NOTIFYICONDATA结构m_notify 2.在OnCreate中添加托盘初始化代码 int CMainFrame::OnCreate(L ...

  3. java基础-008

     57.面向对象软件开发的优点 代码开发模块化,更易于维护 代码复用 增强代码的可靠性和灵活性 增强代码的可理解性 面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象  58.封装 封装给对象 ...

  4. JVM-对象

    1.对象的创建 当虚拟机遇到一条new指令时,首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载.解析和初始化.如果没有,那必须先执行相应的类加 ...

  5. 将Ajax 中数组转换成字符串 封装成类

    <?php class Ajax{ //ajax调用的方法 //sql是要执行的语句 //$type是SQL语句的类型,0代表增删改,1代表查询 //$db代表要操作的数据 public fun ...

  6. lightoj1085 线段树+dp

    //Accepted 7552 KB 844 ms //dp[i]=sum(dp[j])+1 j<i && a[j]<a[i] //可以用线段树求所用小于a[i]的dp[j ...

  7. JS中阻止默认事件与事件冒泡

    JQuery 提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function(event){ ...

  8. 小米Recovery线刷精灵 v1.0.0 破解版

    下载地址:http://www.crsky.com/soft/75923.html 小米Recovery线刷精灵支持将Recovery线刷包一键刷入小米手机,支持小米所有型号. 小米Recovery线 ...

  9. (转)Eclipse “cannot be resolved to a type” error

    原:http://www.cnblogs.com/xuxm2007/archive/2011/10/20/2219104.html Eclipse “cannot be resolved to a t ...

  10. UIkit框架之UIimageview

    1.继承链:UIview:UIresponder:NSObject 2.如果你想利用这个类来制作动态图片,你需要遵守以下的原则: (1)所有的图片的大小都要一样 (2)所有的图片要使用同样的比例,同样 ...