码迷,mamicode.com
首页 > 其他好文 > 详细

self ,super , static关键字

时间:2016-04-27 15:41:36      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

 1.self关键字  自己的   代表当前对象和当前类的。

   a.如果self是在对象方法中使用的话,self就代表当前的对象。

     self其实是一个指针,是当前对象的地址。

 

     有什么用?

      对象方法中,是可以声明一个和属性名字相同的局部变量的。

      在对象方法里,如果你直接使用这个名字相同的这个变量,得到的值是这个局部变量的值。

      如果我就是要拿到属性的值呢?就是用self关键字去执向。

    

 

     如果在对象方法中,要去调用当前对象的其他的对象方法,就使用self去调用。

    b. self也是可以用在类方法中的,self就代表当前类。

      如何得到类的地址(类加载到代码段中的地址)

      1.)调用这个类的对象方法class,返回这个类的地址

      2.)调用这个类的类方法class,返回的也是这个类的地址

      3.)类方法中的self,就是指向这个类。

      4.)类都有一个isa指针

 

 

     如果在类方法中,去调用另外的类方法.

    我们当然可以使用类名去调用另外的类方法,但是我们不建议这么使用。

    我们一般的使用self去调用另外的类方法,因为在类方法中self就代表这个类。

//------------------------------------------------------super----------------------------------------------------------//

 1.super 关键字  只能运用在类方法和对象方法中。

  a.super运用在对象方法中,可以去调用子类对象中从父类继承过来的对象方法。 

    父类中的对象方法继承给子类了,那么这个方法就是子类的了,你当然可以用self去调用。

    但是这种情况,我们建议使用super关键字去调用,代码的可读性更高,让人一看就值得你这个方法,是从父类继承过来的。

  b. super运用在类方法中,可以去调用子类对象中从父类继承过来的类方法。

     类方法是可以继承的。

     父类中的类方法,可以继承给子类,  子类就拥有了这个类方法,子类中的其他类方法中当然可以用self去调用这个类方法。

     但是这种情况,我们建议使用super关键字去调用父类继承过来的类方法,代码可读性更高。让人一看就知道这个类方法是从父类继承过来的。

  c.superhi只能调用方法,不能调用属性。

//------------------------------------------------------static关键字----------------------------------------------------------//

 1.static关键字

   a.c语言中static关键字的用法

      修饰局部变量:将局部变量变成了静态变量,存放在常量区中的。

      修饰全局变量:这个被static修饰的全局变量只能在当前模块中访问,

      修改函数:这个被static修饰的函数只能在当前模块中被调用。

   b.static也是可以在oc中使用的。

      oc中,static关键字是不能修饰 属性 和方法的。

      oc中,可以用static修饰对象方法中的局部变量。 对象方法中的局部变量如果被static修饰了,那么就变成了一个静态变量,就会存在常量区中,程序中就只有一个这个静态变量。使用的时候也是使用这一个。

   c.什么时候我们需要把一个对象中的方法被static修饰呢?

     当对象方法中的某一个变量,是共有的,比如学生的id,每次创建一个学生,id是要自动增长的。id就可以设置成被static修饰了的。

self ,super , static关键字

标签:

原文地址:http://www.cnblogs.com/sunshineFinn/p/5439020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!