类方法的声明和实现

1.类方法声明

  • 格式

    • 将对象方法-号变为+号
  • 特征
    • 类方法以+开头 如+(void)put;
    • 类方法只能由类来调用
    • 类方法中不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间来存储类中的成员变量。
  • 类方法的好处:
    • 节省内存空间
    • 不依赖于对象,执行效率更高;
    • 能用类方法解决的问题,尽量使用类方法;
  • 类方法的场合:
    • 当方法内部不需要使用到成员变量时,可以改为类方法
    • 类方法一般用于编写工具方法
  • 示例
//声明没有返回值的类方法
+ (void)method;
//声明有返回值的类方法
+ (int)method;
//声明有返回值有参数的类方法
+ (int)method: (int)var;
//声明有返回值有多个参数的类方法
+ (int)method: (int)var1 andVar2: (int)var2;

2.类方法实现

+ 必须写在以@implementation开头,@end之间
+ 在声明的后面加上{}即表示实现
+ 将需要实现的代码写在{}中

3.对象方法和类方法区别

  • 对象方法

    • 对象方法是属于对象的
    • 以减号-开头
    • 只能让对象调用,没有对象,这个方法根本不可能被执行
    • 对象方法能访问实例变量(成员变量)
    • 对象方法中可以调用当前对象的对象方法
    • 对象方法中可以调用其他对象的对象方法
    • 对象方法中不可以调用类方法
  • 类方法
    • 类方法是属于类的
    • 以加号+开头
    • 只能用类名调用,对象不能调用
    • 类方法中不能直接访问实例变量(成员变量)
    • 类方法中不能直接调用对象方法,要想调用对象方法,必须创建或传入对象。
  • 使用场合:
    • 当不需要访问成员变量的时候,尽量用类方法
  • 类方法和对象方法可以同名
 
时间: 2024-08-28 08:24:20

类方法的声明和实现的相关文章

Objective-C学习笔记(十八)——对象方法和类方法的声明,定义及调用

在程序设计中,函数的使用无疑大大简化了代码的编写,提高代码运行的效率,减少重复代码.所以现在我们来详细研究一下方法.本例子还是以People类为例. (一)代码一: (1)先在People.h中声明一个方法,该方法为对象方法,也就是普通方法,前面是一个减号. -(void)show; (2)在People.m中实现该方法: -(void)show{ NSLog(@"我是一个对象方法,我被调用了!"); } (3)在main.m中调用该方法: People *people = [[Peo

06:类方法的声明和实现

1.类方法声明 格式 将对象方法-号变为+号 特征 类方法以+开头 如+(void)put; 类方法只能由类来调用 类方法中不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间 来存储类中的成员变量. 类方法的好处: 节省内存空间 不依赖于对象,执行效率更高; 能用类方法解决的问题,尽量使用类方法; 类方法的场合: 当方法内部不需要使用到成员变量时,可以改为类方法 类方法一般用于编写工具方法 示例 //声明没有返回值的方法 + (void)method; //声明有返回值的方法 +

李洪强iOS开发之类的声明和实现

类的声明和实现 类是一类具有相同特征和共同行为的集合 小轿车   大卡车   挖掘机    (车) 车类 类名: Car 属性: 颜色  速度  轮字数 共同行为: 跑  停  载人 对象: 是类的具体的实体 车: BYD BMW 时风 类是分为  类的声明  类的实现 类的声明的格式 @interface 类名 : 父类名(NSObject) { //定义类的实例变量 } //定义类的行为方法 @end //声明的结束 //--------------------------------- 类

Java中类的声明与对象创建

类是一个模板,它描述一类对象的行为和状态:对象是类的一个具体的实例,由类构造对象的过程称为创建类的实例.如:路灯是一个类,每一个路灯就是该类的对象. 1.类声明 类声明格式 [public] [abstract|final] class 类名称 //class表明其后声明的是一个类,final表示该类为终结类,不能被继承:abstract为抽象类 [extends 父类名称] //表示该类继承的父类 [implements 接口名称列表]{ //表明该类要实现的接口 数据成员声明及初始化: 方法

[转] Objective-C 简介

在iOS的开发中使用的是Objective C语言,它是一种面向对象的语言 接口和实现 在Objective里完成的文件被称为界面文件,该类文件的定义被称为实现文件. 一个简单的界面文件MyClass.h将如图所示: 1 @interace MyClass:NSObject{ 2 // 类变量声明 3 } 4 // 类属性声明 5 // 类方法和声明 6 @end 执行MyClass.m文件,如下所示 1 @implementation MyClass 2 // 类方法定义 3 @end 创建对

关于Bundle传递消息

定义引用三个组件EditText name = (EditText)findViewById(R.id.name);EditText passwd = (EditText)findViewById(R.id.passwd);RadioButton male = (RadioButton) findViewById(R.id.male);String gender = male.isChecked() ? "男 " : "女";Person p = new Perso

PHP学习笔记A

//语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. /* [命名规则] */常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH变量名建议用下划线方式分隔 // $var_name函数名建议用驼峰命名法 // varName定界符建议全大写 // <<<DING, <<<'DING'文件名建议全小写和下划线.数字 // func_name.php私有属性名.方法名建议加下划线 // private $_name

.net面试问答(大汇总)

原文://http://blog.csdn.net/wenyan07/article/details/41541489 用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答: 从下至上分别为:数据访问层.业务逻辑层(又或成为领域层).表示层 数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问 业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关 表示层:是系统的UI部分,负责使用者与整个系统的交互.  优点:  分工明确,条理清晰,易

C#中的继承与多态还有接口

简单继承 最简单的三个类 public class Animal { public Animal() { Debug.Log("Construct Animal!"); } } public class Mammal : Animal { public Mammal() { Debug.Log("Construct Mamal!"); } } public class Sheep : Mammal { public Sheep() { Debug.Log("