实例变量与方法

一、实例变量的可见度

二、方法

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. Div层的展开与收缩的代码

    <html> <head> <title>div展开收缩代码</title> <style> * { margin:0; padding:0 ...

  2. HDU 3567 Eight II 打表,康托展开,bfs,g++提交可过c++不可过 难度:3

    http://acm.hdu.edu.cn/showproblem.php?pid=3567 相比Eight,似乎只是把目标状态由确定的改成不确定的,但是康托展开+曼哈顿为h值的A*和IDA*都不过, ...

  3. DataGridView绑定数据库,取得的数据插入到DataGridView指定列(一)

    实现: 点击button1,从数据库中获得数据,指定数据库的某列数据插入到DataGridView指定列 一.双击button1进入事件代码 private void button1_Click(ob ...

  4. xlistview的(java)

    package com.bwie.xlistviews; import java.text.SimpleDateFormat;import java.util.Date; import com.bwi ...

  5. JS图片加载失败显示默认图片

    代码如下: <div id='photo<%# Container.DataItemIndex+1%>' style="position: absolute; displa ...

  6. android 经典下雨效果

    英文原文地址:https://blog.stylingandroid.com/snowfall/ 中文翻译地址:http://www.open-open.com/lib/view/open145226 ...

  7. stm32的串口接收字符串以十六进制数

      #include "pbdata.h"   uint8_t TxBuffer1[] = "USART Interrupt Example: This isUSART1 ...

  8. 知道创宇研发技能表v3.0

    知道创宇研发技能表v3.0 2015/8/21 发布 by @知道创宇(www.knownsec.com) @余弦 & 404团队 后续动态请关注微信公众号:Lazy-Thought 说明 关 ...

  9. Ubuntu 14.10 下grep命令详解

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  10. C++中的数组与指针

    数组与指针看起来很像 int a[] = {1, 2 ,3}; int *p = a; 如此,我们可以p[0], p[1], p[2] 看起来,与直接使用数组名没什么两样,但是看这段代码 sizeof ...