OC基础笔记——self 和super(广州黑马一期)

局部变量、成员变量和全局变量
1、在方法内部可以定义与成员变量同名局部变量,
那么在这个局部变量的作用域范围内他会覆盖成员变量
2、如果定义与成员变量同名局部变量,还(ˇ?ˇ) 想~操作局部变量;通过self来访问
3、全局变量,整个文件共享的,所有方法中共享的;
那么一个方法中修改这个全局变量其他方法中使用这个全局变量都会修改

4、变量作用域中存在一个原则:就近原则
查找的顺序 局部变量 -》 成员变量 -》 全局变量

self与方法
1、self在对象方法中,它是调用这个方法那对象
2、self在类方法中就代表类,他可以调用其他的类方法

总结:
谁调用这个方法那么self就是谁

int agenew = 20;

@implementation CZPerson

-(void) changeAge:(int) age
{
//    _age = 20;
//
////    int _age = 10;
//
//
//    agenew  = 30;
//
//     _age = age;
//
//    self->_age = age;
    [self setAge:20];
}

- (void) setAge:(int)age
{
    NSLog(@"setAge");
    _age = age;
}

- (int) age
{
    NSLog(@"agenew = %d",agenew);
    return _age;
}

+ (int) sumOfNum:(int) num andOther:(int) other
{
    return num + other;
}

+ (int) averageOfNum:(int) num andOther:(int) other
{
   return  [self sumOfNum:num andOther:other] / 2;
}

@end
时间: 2024-10-06 15:06:24

OC基础笔记——self 和super(广州黑马一期)的相关文章

OC基础笔记——内存管理(广州黑马一期)

栈: 局部变量:定义在方法或函数内部变量 系统管理 堆:动态存储区 一般由程序猿管理 ##引用计数 如果内存管理不当 1.不再使用对象没有被回收,内存泄露,最终导致程序闪退 2.正在被使用对象被释放了,野指针,访问野指针就会导致程序崩溃 ARC Automatic Reference Counting 自动引用计数 MRC Manual Reference Counting 手动引用计数 1.当一个对象刚刚出生时候,它的引用计数 1 2.当对象上引用计数是0的时候,系统立即把它回收 3.rele

OC基础笔记目录

OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象的存储细节 函数与方法对比 常见错误 OC基础(4) NSString 类介绍及用法 结构体成员变量 对象和方法之间的关系 对象作为方法的参数连续传递 OC基础(5) #pragma mark指令 OC多文件开发介绍 匿名对象

OC基础笔记——创建类2(广州黑马一期)

// // main.m // 04-创建类2 // // Created by Apple on 14/11/17. // Copyright (c) 2014年 itcast. All rights reserved. // #import <Foundation/Foundation.h> /* 类名:Zombies 属性:life,颜色,位置,形状 行为:走,咬,死,loseLife 炮弹 类名:Cannonball 属性:大小,威力,飞行距离,速度 行为:飞,爆炸 车 类名:Car

OC基础笔记——类方法和对象方法和封装(广州黑马一期)

对象方法: 1.声明和实现方法时候,以 -开头 2.对象方法是隶属于对象,只能通过对象调用 3.对象方法中可以直接访问成员变量,因为对象方法和成员变量都是隶属于该对象的 4.对象方法中可以调用其他对象方法 5.对象方法中也可以调用类方法 类方法: 1.声明和实现的标识符都是 + 2.类方法它是属于类本身的 3.类方法是直接通类名调用的,不能通过对象调用 4.类方法不能访问成员变量,因为成员变量是对象的,不是类的 5.在类方法中不能直接调用对象方法,也就是说不能通过self来调用对象方法 如果你要

OC基础笔记——继承(广州黑马一期)

OC中的继承机制是单继承的,一个子类只能有一个父类 OC支持多层继承的,A 继承 NSObject,B继承A这就称为多层继承 在继承体系中方法调用的顺序 1.在自己类中找 2.如果没有,去父类中找 3.如果父类中没有,就去父类的父类中 4.如果父类的父类也没有,就还往上找,直到找到基类(NSObject) 5.如果NSObject都没有就报错了 //只有继承NSObject那么这个对象才有创建对象能力//NSObject是大部分类的基类(根类 root class),/* 当 A 类 继承 B类

OC基础笔记——创建类注意点和printf与NsLog的区别(广州黑马一期)

//1.类的声明和实现不能嵌套的,声明中也不能嵌套其他声明,实现也不能嵌套其他的实现 //2.类的声明中仅仅能放成员变量和方法的声明 //3.成员变量一定要声明在大括号中, //4.不能在声明的时候给变量赋值 //5.方法不可以写大括号中 //6.成员变量不能定义在大括号外部 //7.方法定义一定要在大括号与@end之间 //8.对象方法只能同多对象调用,不可以使用C语言的方式进行调用 //9.外部不能识别定义在@interface 与 @end 函数,但是可以放在@implementation

OC基础笔记——成员变量的可见性(广州黑马一期)

@private:私有的,只有本类的对象方法中中可以直接访问访问它 成员变量在那个类中定义的才能在那个类中使用 @protected:受保护的:只能在本类和子类中可以直接访问,不再外部访问 @public:公共的,大家都可以用,在本类,子类,外部都可以访问 @package: 主要用在框架内部,在框架内部相当于@protected,在框架外部相当于@private(了解) 本类:定义这个成员变量的类 控制可见性的修饰符,从使用开始直到所有成员变量结束或遇到其他的控制可见性修饰符为止 在实现文件里

OC基础笔记——自动释放池

autorelease:延长对象生命周期 把对象放到离自己最近那个自动释放池中 当自动释放池销毁的时候,它会把放在其中所有对象进行一次release的操作 它和对象在哪里创建没有关系 自动释放池的原理: 1.系统中存在一个自动释放池栈, 当遇到 @autoreleasepool { 把这个自动释放池压入栈中 2.但遇到与之对应 } 自动释放池,出栈,它出栈的时候,会对池中所有对象进行一次release操作 3.自动释放池栈中,只有栈顶自动释放池是活动的,其他的都在休眠 4.当你调用autorel

OC基础笔记——分类category

分类(类别)作用:扩展已有类的功能 1.分类是原来的类增加方法 2.在方法内部可以访问原有类的成员变量(定义头文件中) 步骤 1.为原有类创建一个分类 2.在分类中增加新的方法的声明和实现 注意点: 1.分类中不能扩展原有类的成员变量 2.@property在分类中只能生成getter setter方法的声明,不能生成实现和成员变量 // 分类可以扩充系统自带的类的功能 给NSObject增加分类会影响到所有的类,但是这个东西一定要谨慎小心 3.你不能在分类中定义与原有类同名方法,不同的分类之间