OC-类方法

类方法

1. 基本概念

直接可以用类名来执行的方法(类本身会在内存中占据存储空间,里面有类\对象方法列表)

2. 类方法和对象方法对比

1)  对象方法

  • 以减号-开头
  • 只能让对象调用,没有对象,这个方法根本不可能被执行
  • 对象方法能访问实例变量(成员变量)

2)  类方法

  • 以加号+开头
  • 只能用类名调用,对象不能调用
  • 类方法中不能访问实例变量(成员变量)
  • 使用场合:当不需要访问成员变量的时候,尽量用类方法

3) 类方法和对象方法可以同名

#import <Foundation/Foundation.h>
@interface Person : NSOvject
//类方法
{
    int age;
}
+ (void)printClassName;
@end

@implementation Person
+ (void)printClassName
{
    //error : instance variable ‘age‘ accessed in class method
    //实例变量age不能在类方法中访问,即类方法不能访问成员变量
    NSLog(@"这个类叫做Person--%d", age);
}
- (void)test
{
    NSLog(@"调用了test方法");
    [Person test];//可以调用方法
}
+ (void)test
{
    NSLog(@"lei");
    //[Person test]; 会引发死循环
}
@end

int main()
{
    Person *p = [Person new];

    [p printClassName];

    [Person test];//只能用类调用类方法  

    return 0;
}
时间: 2024-10-12 12:10:35

OC-类方法的相关文章

OC -- 类方法和对象方法

#import <Foundation/Foundation.h> @interface Person : NSObject @property (nonatomic, retain) NSString *name; @property (nonatomic, assign) int age; - (void)print;       // 对象方法 + (void)introduce;   // 类方法 @end @implementation Person - (void)print{ /

iOS开发——面试篇&amp;OC基本语法总结(面试)

OC基本语法总结(面试) C和OC对比 OC中主要开发在什么平台上的应用程序? 答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头? 答:OC中新增关键字大部分是以@开头 OC中新增加了那些数据类型? 答: Block类型 指针类型(Class, id类型) 空类型 特殊类型(SEL, nil) 面向对象特性是什么? 答:继承性,封装性,多态性 import和#include有什么区别? 答:import 的功能和 include一样, 是将右边的

Swift和OC 混编

1.首先创建一个Swift工程 2.导入或者创建一个OC文件(.h和.m) 3.再创建一个桥连接文件 4.然后文件样子为 5.在桥接链接里面导入头文件 6.通过targets->->buildsetting 输入bridging,然后添加.h文件 7.编译一下,最后可以在swift类里面使用OC类里面的东西类,如果要调用,直接通过oc类方法调用在swift类中,不过语法不一样.

黑马程序员-----类方法学习引入

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ----- 第一讲   类方法学习引入 本小节知识点: 1.[了解]类方法学习思考 2.[了解]实现OC版计算器 思考&实现1: 设计一个“计算器(Calculator)”类 1)实现两个书的 +  -   *    /  的计算 思考: 首先创

黑马程序员-OC总结

------- IOS培训.android培训.java培训.期待与您交流! ---------- 1.import的作用  impor是导入外部文件或框架,跟include功能相同,但是import的优点是可以防止重复导入. 2.说一下面向对象,面向对象有哪些特性,分别说一下 面向对象:面向对象简称OOP,在解决问题时我们只关心解决此方法的工具,也就是对象,不关心解决此方法的过程. 特性:有三个特性: 封装:封装是为了防止外界直接访问或修改对象的成员变量,提高了程序安全性. 继承:子类继承父类

iOS开发核心语言Objective C —— 全部知识点总结

本分享是面向有意向从事iOS开发的伙伴及苹果产品的发烧友,亦或是已经从事了iOS的开发人员,想进一步提升者.假设您对iOS开发有极高的兴趣,能够与我一起探讨iOS开发.一起学习,共同进步.假设您是零基础.建议您先翻阅我之前分享的iOS开发分分钟搞定C语言系列,然后在開始Objective C语言的学习,假设您遇到问题也能够与我探讨.另外将无偿分享自己整理出来的大概400G iOS学习视频及学习资料,都是干货哦.能够新浪微博私信?关注极客James,期待与您的共同学习和探讨! ! 由于时间有限,每

iOS开发核心语言Objective C —— 所有知识点总结

C和OC对比 OC中主要开发在什么平台上的应用程序?答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头?答:OC中新增关键字大部分是以@开头 OC中新增加了那些数据类型?答:Block类型指针类型(Class, id类型)空类型特殊类型(SEL, nil) 面向对象特性是什么?答:继承性,封装性,多态性 import和#include有什么区别? 答:import 的功能和 include一样, 是将右边的文件拷贝到当前import的位置.为了降低

[Objective-c 基础 - 2.2] OC弱语法、类方法

A.OC弱语法 1.在运行的时候才会检查方法的声明和实现 2.没有声明只有实现的方法也能正常运行,只要在调用之前定义即可 3.类的声明必须存在,否则会出现运行时错误 B.类方法 1.是类名调用的方法 2.使用加号修饰的方法 3.类方法和对象方法可以重名 4.对象方法和类方法都允许多次声明,都不允许多次定义 5.类方法不能访问实例变量 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObject 4 - (void) t

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

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

O-C相关04:类方法的概述与定义和调用

类方法的概述与定义和调用 1, 类方法的概述 类方法(class method)在其他编程语言中常常称为静态方法(例如 Java 或 C# 等). 与实例方法不同的是,类方法只需要使用类名即可调用, 不需要引用对象, 也就不需要创建对象了. 而实例方法必须是先将对象(实例)创建出来, 再利用对象来调用方法. OC 中使用 "+" 表示类方法, 使用 "-" 表示实例方法. 类方法与实例方法的定义比较: 2, 类方法的定义 3, 使用类方法的优势分析: -> 类