1.实例方法/动态方法 a).标识符:- b).调用方式:(实例对象    函数) c).实例方法在堆栈上. 2.静态方法/类方法 a).标识符:+ b).调用方式:(类    函数) c).静态方法在堆上分配内存. 3.静态方法和实例方法的区分 a).静态方法常驻内存,实例方法不是,所以静态方法效率高但占内存.事实上,方法都是一样的,在加载时机和占用内存上,静态方法和实例方法是一样的,在类型第一次被使用时加载.调用的速度基本上没有差别. b).静态方法在堆上分配内存,实例方法在堆栈上.事实上所…
1.实例方法/动态方法 a).标识符:- b).调用方式:(实例对象    函数) c).实例方法在堆栈上. 2.静态方法/类方法 a).标识符:+ b).调用方式:(类    函数) c).静态方法在堆上分配内存. 3.静态方法和实例方法的区分 a).静态方法常驻内存,实例方法不是,所以静态方法效率高但占内存.事实上,方法都是一样的,在加载时机和占用内存上,静态方法和实例方法是一样的,在类型第一次被使用时加载.调用的速度基本上没有差别. b).静态方法在堆上分配内存,实例方法在堆栈上.事实上所…
python的类方法需要在方法前面加装饰器:@classmethod ,静态方法是在方法前面加装饰器:@staticmethod. 类方法.类属性是属于类自身,属于类自身的命名空间,和实例方法.实例属性不在一个命名空间下. 实例对象和类都可以直接调用类方法.实例方法和静态方法,区别在于:在类方法和静态方法内部不能调用实例属性. class Base: def __init__(self): print "base begin..." def prints(self): print &q…
1. 类对象和实例对象 Python中一切皆对象,Python类本身也是一种对象,类定义完成后,会在当前作用域中定义一个以类名为名字的命名空间.类对象具有以下两种操作: 可以通过“类名()”的方式实例化一个对象. 可以通过“类名.类属性”的方式来访问一个类属性. 如果说类时一种概念性的定义,是一种类别,那么实例对象就是对这一类别的具体化.实例化,即实例化对象是类对象实例化之后的产物. class Person:# 声明一个类对象 pass p1 = Person()#声明一个实例对象 print…
Python作为动态语言,跟静态语言如c/c++有很大区别,其中的一个重要的特性就是Python的变量无需声明直接可用.同样,类的成员变量无需声明,直接可用.目的是为了动态语言跟灵活,在思路想到的时候能及时添加成员,而无需在回到类声明的地方,添加成员.但是,同为动态语言,类的成员变量和实例成员变量,生命周期有很大的区别,我们以一个简单的小例子说明: class student(object): '''我们声明一个学生类,希望它有‘姓名’和‘性别’两个属性''' sex = 'male' '''其…
今天简单总结下python的类方法,实例方法,静态方法. python默认都是实例方法,也就是说,只能实例对象才能调用这个方法. 那是不是说类方法也只能被类对象本身来调用呢,当然,不是.类方法既可以被类对象调用,也可以被实例对象调用.你可以这样理解,假设我现在定义的是‘dog狗’,它有一个类方法‘啃骨头’,那么对于所有的狗是不是都可以调用啃骨头这个方法,既然这样,我现在创建一个‘旺财’实例,它也同样可以去啃骨头,也就是能调用这个类方法. 静态方法你可以理解为参数可以随意设置的方法,类对象和实例对…
this 赵本山问奥尼尔:“我的爸爸的爸爸是谁?” 奥尼尔:“不知道” 赵本山:“你傻啊,是我爷爷” 奥尼尔回去问科比:“我的爸爸的爸爸是谁?” 科比:“不知道” 奥尼尔:”你傻啊,是赵本山的爷爷“ 就像这个笑话一样,不同的人,用this时,指向的对象也是变的. 普通方法中,this总是指向调用该方法的对象 //this在成员方法中的用处 //this就是指代当前对象,是一个隐式参数 public class thissss { public static void main(String []…
类方法是类的方法,在定义的时候要在上方加上一个@classmethod装饰器来进行装饰,形参是cls,类和实例都可以取调用类方法: 实例方法是实例对象方法,只有实例可以调用,类是不能调用的,形参是self,指的是对象本身: 静态方法是一个任意的函数,只是刚好放到了类里面,需要在上方加上一个@staticmethod来进行装饰,可以使用对象直接调用.…
最近离职了,找工作,光会做项目,对基础不熟,今天就总结了一点面试题. 废话不多说,上题吧: 1.objective-c中的数字对象都有哪些,简述它们与基本数据类型的区别是什么. 基本类型和C一样,主要是有int.long.double.float.char.void.bool.对于基本数据类型,不需要使用指针,NSNumber是OC的数字对象,需要考虑内存释放问题.数字类型有:NSInteger.CGFloat.数据对象有NSNumber.对象和变量的差别.可以拆装效果.其他的类型有NSStri…
OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装.继承.多态.它既具有静态语言的特性(如C++),又有动态语言的效率(动态绑定.动态加载等).总体来讲,OC确实是一门不错的编程语言, Objective-C具有相当多的动态特性,表现为三方面:动态类型(Dynamic typing).动态绑定(Dynamic binding)和动态加载(Dynamic loading).动态——必须到运行时(run time)才会做的一些事情. 动态类型:即运行时再决定对象的类型,这…