类方法和实例方法区别

1.类方法和实例方法

类方法:不需要声明一个对象(实例),就可以直接引用。通常是有返回值的(否则类方法就无意义了,因为没有对象或者相应的成员变量的值可以设置)

类方法的特点:

1.声明和实现的时候,以(+)开头

2.类方法属于类的本身,只能通过类名调用

3.类方法不能直接访问成员变量

4.类方法不能直接调用对象方法(可以间接调用)    // 间接调用:1> 把对象当做形参传入    2> 在类方法中创建一个对象

例如:+ (instancetype)personWithName:(char *)name age:(int)age;

实例方法:对象方法。(例如,学生是一个对象,学习就是一个对象方法)

类方法的特点:

(1)声明和实现的时候,以(-)开头

(2)对象方法隶属于对象,只能通过对象调用

(3)对象方法可以直接访问成员变量

(4)对象方法可以调用其他的对象方法以及类方法

例如:  - (void)setAge:(int)age;       - (int)age;        - (void)method;

类方法的好处:

调用类方法的时候,不用创建对象,更节省内存,调用比较简单,效率高。

什么时候使用类方法?        答:当不需要访问成员变量的时候

时间: 2024-10-27 16:29:58

类方法和实例方法区别的相关文章

Object-c 类方法和实例方法的区别和联系

在我学习oc的时候,总是搞不懂什么时候用类方法,什么时候使用实例方法.于是做了如下总结. -表示实例方法: 用实例方法访问 +表示类方法:类方法的对象时类不是实例.多用于创建对象或工具类 什么时候使用类方法,要创建一个实例时候获取一个共享实例,或者获取关于类的一些共有信息. 1.类方法是属于整个类,而不属于某个对象. 2.类方法只能访问类成员变量,不能访问实例变量,而实例方法可以访问类成员变量和实例变量. 3.类方法的调用可以通过类名.类方法和对象.类方法,而实例方法只能通过对象.实例方法访问.

ios开发中类方法与self的注意点 与实例方法区别

Objective-C里面既有实例方法也类方法.类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method).工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法. 注意点一:类方法 1,类方法可以调用类方法. 2,类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法. 3,类方法不可以使用实例变量.类方法可以使用self

IOS类方法,实例方法

从昨天开始准备从Objective-C Programming: The Big Nerd Ranch Guide这本书入手,从头扎实地学习一下OC,顺便提高一下英文阅读能力. 今天的知识重点在于类方法和实例方法的区别: NSDate *now = [NSDate date]; We say that the date method is a class method. That is, you cause the method to execute by sending a message t

python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法

1. 类对象和实例对象 Python中一切皆对象,Python类本身也是一种对象,类定义完成后,会在当前作用域中定义一个以类名为名字的命名空间.类对象具有以下两种操作: 可以通过"类名()"的方式实例化一个对象. 可以通过"类名.类属性"的方式来访问一个类属性. 如果说类时一种概念性的定义,是一种类别,那么实例对象就是对这一类别的具体化.实例化,即实例化对象是类对象实例化之后的产物. class Person:# 声明一个类对象 pass p1 = Person()

类方法、实例方法和静态方法

类方法.实例方法和静态方法,实质是内存空间不一样,三种方法的创建和调用需要注意,同样的,类属性和实例属性,类对象和实例对象都需要理解,公有属性可以设置为类属性,特有属性可以设置为实例属性,类方法.实例方法和静态方法都放在类对象中,实例对象可直接调用. 1 # coding:utf-8 2 3 class Province(object): 4 country = "中国" # 类属性 5 6 def __init__(self,name): 7 self.name = name 8 9

python的静态成员变量、实例成员变量、静态方法、类方法、实例方法

静态成员变量(类变量)和普通成员变量(实例变量) 静态成员变量只能通过类名.变量名获得,实例成员变量,通过该实例引用.变量名获得. 在实例对静态成员变量赋值时,实例 python是动态类型的语言,没有特别的标志区分静态成员变量和普通成员变量 如果你使用类名.成员变量    那这个成员变量现在就是静态成员变量(类变量) 如果你使用实例.成员变量    那这个成员变量现在就是普通成员变量(实例变量) 静态方法.类方法.实例方法      实例方法,类中的普通方法,由实例调用 类方法,被@classm

ruby 类方法、实例方法、类变量

###################### #类变量 ###################### class Cloud @@count=0 def initialize(user,password,ip) @user = user @password =password @ip =ip end def createvm @ip =ip @@count+=1 end end ######################### #类方法和实例方法 #######################

python3类方法,实例方法和静态方法

今天简单总结下python的类方法,实例方法,静态方法. python默认都是实例方法,也就是说,只能实例对象才能调用这个方法. 那是不是说类方法也只能被类对象本身来调用呢,当然,不是.类方法既可以被类对象调用,也可以被实例对象调用.你可以这样理解,假设我现在定义的是'dog狗',它有一个类方法'啃骨头',那么对于所有的狗是不是都可以调用啃骨头这个方法,既然这样,我现在创建一个'旺财'实例,它也同样可以去啃骨头,也就是能调用这个类方法. 静态方法你可以理解为参数可以随意设置的方法,类对象和实例对

类方法和实例方法的调用 super this 访问控制符

一.类方法和实例方法的调用 先看一道选择题:下列哪种说法是正确的( ) A. 实例方法可直接调用超类的实例方法 B. 实例方法可直接调用超类的类方法 C. 实例方法可直接调用其他类的实例方法 D. 实例方法可直接调用本类的类方法 先复习一下,类方法(static方法)在类方法中,不能引用实例变量不能使用super.this关键字不能调用类方法 不考虑访问修饰符的话,实例方法可以通过super.方法名,对象名.方法名调用父类的实例方法实例方法可以通过类名.方法名,super.方法名调用父类的静态方